]> git.ipfire.org Git - thirdparty/kea.git/commitdiff
[#2222] Removed the skipped when equal code
authorFrancis Dupont <fdupont@isc.org>
Wed, 12 Jan 2022 12:31:32 +0000 (13:31 +0100)
committerFrancis Dupont <fdupont@isc.org>
Thu, 20 Jan 2022 16:12:34 +0000 (17:12 +0100)
ChangeLog
src/bin/dhcp4/tests/get_config_unittest.cc
src/bin/dhcp6/tests/get_config_unittest.cc
src/lib/dhcpsrv/network.cc
src/lib/dhcpsrv/tests/cfg_shared_networks4_unittest.cc
src/lib/dhcpsrv/tests/cfg_shared_networks6_unittest.cc
src/lib/dhcpsrv/tests/cfg_subnets4_unittest.cc
src/lib/dhcpsrv/tests/cfg_subnets6_unittest.cc
src/lib/dhcpsrv/tests/shared_network_unittest.cc

index 06940cff0cf6b415e4d41a35d1a140323fe03343..07b432b4d2ffb5eadedf07ace3687958f8f364b9 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+1983.  [bug]           fdupont
+       Minimum and maximum values of lifetimes are no longer
+       skipped when the configuration is retrieved even when
+       they are the same as the default value.
+       (Gitlab #2222)
+
 1982.  [bug]           andrei
        The config for an HA peer now accepts an IPv6 address as a valid
        value for the "url" entry.
index 2f1d027de2d1758544af6ec34840cac5a8ad9b8a..f17dd69d0450b75636c9f29e27bb32ae14cb3cbe 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2017-2021 Internet Systems Consortium, Inc. ("ISC")
+// Copyright (C) 2017-2020 Internet Systems Consortium, Inc. ("ISC")
 //
 // This Source Code Form is subject to the terms of the Mozilla Public
 // License, v. 2.0. If a copy of the MPL was not distributed with this
@@ -69,7 +69,6 @@ namespace {
 ///@{
 /// @brief extracted configurations
 const char* EXTRACTED_CONFIGS[] = {
-/// put this after const char* EXTRACTED_CONFIGS[] = {
     // CONFIGURATION 0
 "{\n"
 "        \"interfaces-config\": {\n"
@@ -2324,7 +2323,6 @@ const char* EXTRACTED_CONFIGS[] = {
 
 /// @brief unparsed configurations
 const char* UNPARSED_CONFIGS[] = {
-///put this after const char* UNPARSED_CONFIGS[] = {
     // CONFIGURATION 0
 "{\n"
 "        \"authoritative\": false,\n"
@@ -2486,6 +2484,8 @@ const char* UNPARSED_CONFIGS[] = {
 "                \"4o6-subnet\": \"\",\n"
 "                \"calculate-tee-times\": false,\n"
 "                \"id\": 1,\n"
+"                \"max-valid-lifetime\": 4000,\n"
+"                \"min-valid-lifetime\": 4000,\n"
 "                \"option-data\": [ ],\n"
 "                \"pools\": [\n"
 "                    {\n"
@@ -2590,6 +2590,8 @@ const char* UNPARSED_CONFIGS[] = {
 "                \"4o6-subnet\": \"\",\n"
 "                \"calculate-tee-times\": false,\n"
 "                \"id\": 1,\n"
+"                \"max-valid-lifetime\": 4000,\n"
+"                \"min-valid-lifetime\": 4000,\n"
 "                \"option-data\": [ ],\n"
 "                \"pools\": [\n"
 "                    {\n"
@@ -2805,6 +2807,8 @@ const char* UNPARSED_CONFIGS[] = {
 "                \"4o6-subnet\": \"\",\n"
 "                \"calculate-tee-times\": false,\n"
 "                \"id\": 1,\n"
+"                \"max-valid-lifetime\": 4000,\n"
+"                \"min-valid-lifetime\": 4000,\n"
 "                \"option-data\": [ ],\n"
 "                \"pools\": [\n"
 "                    {\n"
@@ -2830,6 +2834,8 @@ const char* UNPARSED_CONFIGS[] = {
 "                \"4o6-subnet\": \"\",\n"
 "                \"calculate-tee-times\": false,\n"
 "                \"id\": 2,\n"
+"                \"max-valid-lifetime\": 4000,\n"
+"                \"min-valid-lifetime\": 4000,\n"
 "                \"option-data\": [ ],\n"
 "                \"pools\": [\n"
 "                    {\n"
@@ -2855,6 +2861,8 @@ const char* UNPARSED_CONFIGS[] = {
 "                \"4o6-subnet\": \"\",\n"
 "                \"calculate-tee-times\": false,\n"
 "                \"id\": 3,\n"
+"                \"max-valid-lifetime\": 4000,\n"
+"                \"min-valid-lifetime\": 4000,\n"
 "                \"option-data\": [ ],\n"
 "                \"pools\": [\n"
 "                    {\n"
@@ -2880,6 +2888,8 @@ const char* UNPARSED_CONFIGS[] = {
 "                \"4o6-subnet\": \"\",\n"
 "                \"calculate-tee-times\": false,\n"
 "                \"id\": 4,\n"
+"                \"max-valid-lifetime\": 4000,\n"
+"                \"min-valid-lifetime\": 4000,\n"
 "                \"option-data\": [ ],\n"
 "                \"pools\": [\n"
 "                    {\n"
@@ -2986,6 +2996,8 @@ const char* UNPARSED_CONFIGS[] = {
 "                \"4o6-subnet\": \"\",\n"
 "                \"calculate-tee-times\": false,\n"
 "                \"id\": 1,\n"
+"                \"max-valid-lifetime\": 4000,\n"
+"                \"min-valid-lifetime\": 4000,\n"
 "                \"option-data\": [ ],\n"
 "                \"pools\": [\n"
 "                    {\n"
@@ -3011,6 +3023,8 @@ const char* UNPARSED_CONFIGS[] = {
 "                \"4o6-subnet\": \"\",\n"
 "                \"calculate-tee-times\": false,\n"
 "                \"id\": 34,\n"
+"                \"max-valid-lifetime\": 4000,\n"
+"                \"min-valid-lifetime\": 4000,\n"
 "                \"option-data\": [ ],\n"
 "                \"pools\": [\n"
 "                    {\n"
@@ -3036,6 +3050,8 @@ const char* UNPARSED_CONFIGS[] = {
 "                \"4o6-subnet\": \"\",\n"
 "                \"calculate-tee-times\": false,\n"
 "                \"id\": 100,\n"
+"                \"max-valid-lifetime\": 4000,\n"
+"                \"min-valid-lifetime\": 4000,\n"
 "                \"option-data\": [ ],\n"
 "                \"pools\": [\n"
 "                    {\n"
@@ -3061,6 +3077,8 @@ const char* UNPARSED_CONFIGS[] = {
 "                \"4o6-subnet\": \"\",\n"
 "                \"calculate-tee-times\": false,\n"
 "                \"id\": 1024,\n"
+"                \"max-valid-lifetime\": 4000,\n"
+"                \"min-valid-lifetime\": 4000,\n"
 "                \"option-data\": [ ],\n"
 "                \"pools\": [\n"
 "                    {\n"
@@ -3167,6 +3185,8 @@ const char* UNPARSED_CONFIGS[] = {
 "                \"4o6-subnet\": \"\",\n"
 "                \"calculate-tee-times\": false,\n"
 "                \"id\": 1,\n"
+"                \"max-valid-lifetime\": 4000,\n"
+"                \"min-valid-lifetime\": 4000,\n"
 "                \"option-data\": [ ],\n"
 "                \"pools\": [\n"
 "                    {\n"
@@ -3274,6 +3294,8 @@ const char* UNPARSED_CONFIGS[] = {
 "                \"boot-file-name\": \"bar\",\n"
 "                \"calculate-tee-times\": false,\n"
 "                \"id\": 1,\n"
+"                \"max-valid-lifetime\": 4000,\n"
+"                \"min-valid-lifetime\": 4000,\n"
 "                \"next-server\": \"1.2.3.4\",\n"
 "                \"option-data\": [ ],\n"
 "                \"pools\": [\n"
@@ -3383,6 +3405,8 @@ const char* UNPARSED_CONFIGS[] = {
 "                \"boot-file-name\": \"bootfile.efi\",\n"
 "                \"calculate-tee-times\": false,\n"
 "                \"id\": 1,\n"
+"                \"max-valid-lifetime\": 4000,\n"
+"                \"min-valid-lifetime\": 4000,\n"
 "                \"next-server\": \"1.2.3.4\",\n"
 "                \"option-data\": [ ],\n"
 "                \"pools\": [\n"
@@ -3491,6 +3515,8 @@ const char* UNPARSED_CONFIGS[] = {
 "                \"4o6-subnet\": \"\",\n"
 "                \"calculate-tee-times\": false,\n"
 "                \"id\": 1,\n"
+"                \"max-valid-lifetime\": 4000,\n"
+"                \"min-valid-lifetime\": 4000,\n"
 "                \"option-data\": [ ],\n"
 "                \"pools\": [\n"
 "                    {\n"
@@ -3597,6 +3623,8 @@ const char* UNPARSED_CONFIGS[] = {
 "                \"4o6-subnet\": \"\",\n"
 "                \"calculate-tee-times\": false,\n"
 "                \"id\": 1,\n"
+"                \"max-valid-lifetime\": 4000,\n"
+"                \"min-valid-lifetime\": 4000,\n"
 "                \"option-data\": [ ],\n"
 "                \"pools\": [\n"
 "                    {\n"
@@ -3704,6 +3732,8 @@ const char* UNPARSED_CONFIGS[] = {
 "                \"calculate-tee-times\": false,\n"
 "                \"id\": 1,\n"
 "                \"match-client-id\": true,\n"
+"                \"max-valid-lifetime\": 4000,\n"
+"                \"min-valid-lifetime\": 4000,\n"
 "                \"option-data\": [ ],\n"
 "                \"pools\": [\n"
 "                    {\n"
@@ -3730,6 +3760,8 @@ const char* UNPARSED_CONFIGS[] = {
 "                \"calculate-tee-times\": false,\n"
 "                \"id\": 2,\n"
 "                \"match-client-id\": false,\n"
+"                \"max-valid-lifetime\": 4000,\n"
+"                \"min-valid-lifetime\": 4000,\n"
 "                \"option-data\": [ ],\n"
 "                \"pools\": [\n"
 "                    {\n"
@@ -3837,6 +3869,8 @@ const char* UNPARSED_CONFIGS[] = {
 "                \"calculate-tee-times\": false,\n"
 "                \"id\": 1,\n"
 "                \"match-client-id\": false,\n"
+"                \"max-valid-lifetime\": 4000,\n"
+"                \"min-valid-lifetime\": 4000,\n"
 "                \"option-data\": [ ],\n"
 "                \"pools\": [\n"
 "                    {\n"
@@ -3862,6 +3896,8 @@ const char* UNPARSED_CONFIGS[] = {
 "                \"4o6-subnet\": \"\",\n"
 "                \"calculate-tee-times\": false,\n"
 "                \"id\": 2,\n"
+"                \"max-valid-lifetime\": 4000,\n"
+"                \"min-valid-lifetime\": 4000,\n"
 "                \"option-data\": [ ],\n"
 "                \"pools\": [\n"
 "                    {\n"
@@ -3969,6 +4005,8 @@ const char* UNPARSED_CONFIGS[] = {
 "                \"authoritative\": true,\n"
 "                \"calculate-tee-times\": false,\n"
 "                \"id\": 1,\n"
+"                \"max-valid-lifetime\": 4000,\n"
+"                \"min-valid-lifetime\": 4000,\n"
 "                \"option-data\": [ ],\n"
 "                \"pools\": [\n"
 "                    {\n"
@@ -3995,6 +4033,8 @@ const char* UNPARSED_CONFIGS[] = {
 "                \"authoritative\": false,\n"
 "                \"calculate-tee-times\": false,\n"
 "                \"id\": 2,\n"
+"                \"max-valid-lifetime\": 4000,\n"
+"                \"min-valid-lifetime\": 4000,\n"
 "                \"option-data\": [ ],\n"
 "                \"pools\": [\n"
 "                    {\n"
@@ -4102,6 +4142,8 @@ const char* UNPARSED_CONFIGS[] = {
 "                \"authoritative\": false,\n"
 "                \"calculate-tee-times\": false,\n"
 "                \"id\": 1,\n"
+"                \"max-valid-lifetime\": 4000,\n"
+"                \"min-valid-lifetime\": 4000,\n"
 "                \"option-data\": [ ],\n"
 "                \"pools\": [\n"
 "                    {\n"
@@ -4127,6 +4169,8 @@ const char* UNPARSED_CONFIGS[] = {
 "                \"4o6-subnet\": \"\",\n"
 "                \"calculate-tee-times\": false,\n"
 "                \"id\": 2,\n"
+"                \"max-valid-lifetime\": 4000,\n"
+"                \"min-valid-lifetime\": 4000,\n"
 "                \"option-data\": [ ],\n"
 "                \"pools\": [\n"
 "                    {\n"
@@ -4343,6 +4387,8 @@ const char* UNPARSED_CONFIGS[] = {
 "                \"4o6-subnet\": \"\",\n"
 "                \"calculate-tee-times\": false,\n"
 "                \"id\": 1,\n"
+"                \"max-valid-lifetime\": 4000,\n"
+"                \"min-valid-lifetime\": 4000,\n"
 "                \"option-data\": [ ],\n"
 "                \"pools\": [\n"
 "                    {\n"
@@ -4372,6 +4418,8 @@ const char* UNPARSED_CONFIGS[] = {
 "                \"4o6-subnet\": \"\",\n"
 "                \"calculate-tee-times\": false,\n"
 "                \"id\": 2,\n"
+"                \"max-valid-lifetime\": 4000,\n"
+"                \"min-valid-lifetime\": 4000,\n"
 "                \"option-data\": [ ],\n"
 "                \"pools\": [\n"
 "                    {\n"
@@ -4482,6 +4530,8 @@ const char* UNPARSED_CONFIGS[] = {
 "                \"4o6-subnet\": \"\",\n"
 "                \"calculate-tee-times\": false,\n"
 "                \"id\": 1,\n"
+"                \"max-valid-lifetime\": 4000,\n"
+"                \"min-valid-lifetime\": 4000,\n"
 "                \"option-data\": [ ],\n"
 "                \"pools\": [\n"
 "                    {\n"
@@ -5230,6 +5280,8 @@ const char* UNPARSED_CONFIGS[] = {
 "                \"4o6-subnet\": \"\",\n"
 "                \"calculate-tee-times\": false,\n"
 "                \"id\": 1,\n"
+"                \"max-valid-lifetime\": 4000,\n"
+"                \"min-valid-lifetime\": 4000,\n"
 "                \"option-data\": [ ],\n"
 "                \"pools\": [\n"
 "                    {\n"
@@ -5336,6 +5388,8 @@ const char* UNPARSED_CONFIGS[] = {
 "                \"4o6-subnet\": \"\",\n"
 "                \"calculate-tee-times\": false,\n"
 "                \"id\": 1,\n"
+"                \"max-valid-lifetime\": 4000,\n"
+"                \"min-valid-lifetime\": 4000,\n"
 "                \"option-data\": [\n"
 "                    {\n"
 "                        \"always-send\": false,\n"
@@ -5486,6 +5540,8 @@ const char* UNPARSED_CONFIGS[] = {
 "                \"4o6-subnet\": \"\",\n"
 "                \"calculate-tee-times\": false,\n"
 "                \"id\": 1,\n"
+"                \"max-valid-lifetime\": 4000,\n"
+"                \"min-valid-lifetime\": 4000,\n"
 "                \"option-data\": [ ],\n"
 "                \"pools\": [\n"
 "                    {\n"
@@ -5761,6 +5817,8 @@ const char* UNPARSED_CONFIGS[] = {
 "                \"4o6-subnet\": \"\",\n"
 "                \"calculate-tee-times\": false,\n"
 "                \"id\": 1,\n"
+"                \"max-valid-lifetime\": 3000,\n"
+"                \"min-valid-lifetime\": 3000,\n"
 "                \"option-data\": [ ],\n"
 "                \"pools\": [\n"
 "                    {\n"
@@ -5876,6 +5934,8 @@ const char* UNPARSED_CONFIGS[] = {
 "                \"4o6-subnet\": \"\",\n"
 "                \"calculate-tee-times\": false,\n"
 "                \"id\": 1,\n"
+"                \"max-valid-lifetime\": 4000,\n"
+"                \"min-valid-lifetime\": 4000,\n"
 "                \"option-data\": [\n"
 "                    {\n"
 "                        \"always-send\": false,\n"
@@ -5999,6 +6059,8 @@ const char* UNPARSED_CONFIGS[] = {
 "                \"4o6-subnet\": \"\",\n"
 "                \"calculate-tee-times\": false,\n"
 "                \"id\": 1,\n"
+"                \"max-valid-lifetime\": 4000,\n"
+"                \"min-valid-lifetime\": 4000,\n"
 "                \"option-data\": [\n"
 "                    {\n"
 "                        \"always-send\": false,\n"
@@ -6033,6 +6095,8 @@ const char* UNPARSED_CONFIGS[] = {
 "                \"4o6-subnet\": \"\",\n"
 "                \"calculate-tee-times\": false,\n"
 "                \"id\": 2,\n"
+"                \"max-valid-lifetime\": 4000,\n"
+"                \"min-valid-lifetime\": 4000,\n"
 "                \"option-data\": [\n"
 "                    {\n"
 "                        \"always-send\": false,\n"
@@ -6148,6 +6212,8 @@ const char* UNPARSED_CONFIGS[] = {
 "                \"4o6-subnet\": \"\",\n"
 "                \"calculate-tee-times\": false,\n"
 "                \"id\": 1,\n"
+"                \"max-valid-lifetime\": 4000,\n"
+"                \"min-valid-lifetime\": 4000,\n"
 "                \"option-data\": [ ],\n"
 "                \"pools\": [\n"
 "                    {\n"
@@ -6271,6 +6337,8 @@ const char* UNPARSED_CONFIGS[] = {
 "                \"4o6-subnet\": \"\",\n"
 "                \"calculate-tee-times\": false,\n"
 "                \"id\": 1,\n"
+"                \"max-valid-lifetime\": 4000,\n"
+"                \"min-valid-lifetime\": 4000,\n"
 "                \"option-data\": [ ],\n"
 "                \"pools\": [\n"
 "                    {\n"
@@ -6416,6 +6484,8 @@ const char* UNPARSED_CONFIGS[] = {
 "                \"4o6-subnet\": \"\",\n"
 "                \"calculate-tee-times\": false,\n"
 "                \"id\": 1,\n"
+"                \"max-valid-lifetime\": 4000,\n"
+"                \"min-valid-lifetime\": 4000,\n"
 "                \"option-data\": [ ],\n"
 "                \"pools\": [\n"
 "                    {\n"
@@ -6682,6 +6752,8 @@ const char* UNPARSED_CONFIGS[] = {
 "                \"4o6-subnet\": \"\",\n"
 "                \"calculate-tee-times\": false,\n"
 "                \"id\": 1,\n"
+"                \"max-valid-lifetime\": 3000,\n"
+"                \"min-valid-lifetime\": 3000,\n"
 "                \"option-data\": [ ],\n"
 "                \"pools\": [\n"
 "                    {\n"
@@ -6803,6 +6875,8 @@ const char* UNPARSED_CONFIGS[] = {
 "                \"4o6-subnet\": \"\",\n"
 "                \"calculate-tee-times\": false,\n"
 "                \"id\": 1,\n"
+"                \"max-valid-lifetime\": 4000,\n"
+"                \"min-valid-lifetime\": 4000,\n"
 "                \"option-data\": [ ],\n"
 "                \"pools\": [\n"
 "                    {\n"
@@ -6928,6 +7002,8 @@ const char* UNPARSED_CONFIGS[] = {
 "                \"4o6-subnet\": \"\",\n"
 "                \"calculate-tee-times\": false,\n"
 "                \"id\": 1,\n"
+"                \"max-valid-lifetime\": 4000,\n"
+"                \"min-valid-lifetime\": 4000,\n"
 "                \"option-data\": [ ],\n"
 "                \"pools\": [\n"
 "                    {\n"
@@ -7194,6 +7270,8 @@ const char* UNPARSED_CONFIGS[] = {
 "                \"4o6-subnet\": \"\",\n"
 "                \"calculate-tee-times\": false,\n"
 "                \"id\": 1,\n"
+"                \"max-valid-lifetime\": 4000,\n"
+"                \"min-valid-lifetime\": 4000,\n"
 "                \"option-data\": [ ],\n"
 "                \"pools\": [\n"
 "                    {\n"
@@ -7300,6 +7378,8 @@ const char* UNPARSED_CONFIGS[] = {
 "                \"4o6-subnet\": \"\",\n"
 "                \"calculate-tee-times\": false,\n"
 "                \"id\": 1,\n"
+"                \"max-valid-lifetime\": 4000,\n"
+"                \"min-valid-lifetime\": 4000,\n"
 "                \"option-data\": [ ],\n"
 "                \"pools\": [\n"
 "                    {\n"
@@ -7406,6 +7486,8 @@ const char* UNPARSED_CONFIGS[] = {
 "                \"4o6-subnet\": \"\",\n"
 "                \"calculate-tee-times\": false,\n"
 "                \"id\": 1,\n"
+"                \"max-valid-lifetime\": 4000,\n"
+"                \"min-valid-lifetime\": 4000,\n"
 "                \"option-data\": [ ],\n"
 "                \"pools\": [\n"
 "                    {\n"
@@ -7512,6 +7594,8 @@ const char* UNPARSED_CONFIGS[] = {
 "                \"4o6-subnet\": \"\",\n"
 "                \"calculate-tee-times\": false,\n"
 "                \"id\": 1,\n"
+"                \"max-valid-lifetime\": 4,\n"
+"                \"min-valid-lifetime\": 4,\n"
 "                \"option-data\": [ ],\n"
 "                \"pools\": [\n"
 "                    {\n"
@@ -7618,6 +7702,8 @@ const char* UNPARSED_CONFIGS[] = {
 "                \"4o6-subnet\": \"\",\n"
 "                \"calculate-tee-times\": false,\n"
 "                \"id\": 1,\n"
+"                \"max-valid-lifetime\": 4,\n"
+"                \"min-valid-lifetime\": 4,\n"
 "                \"option-data\": [ ],\n"
 "                \"pools\": [\n"
 "                    {\n"
@@ -7725,6 +7811,8 @@ const char* UNPARSED_CONFIGS[] = {
 "                \"calculate-tee-times\": false,\n"
 "                \"client-class\": \"alpha\",\n"
 "                \"id\": 1,\n"
+"                \"max-valid-lifetime\": 4000,\n"
+"                \"min-valid-lifetime\": 4000,\n"
 "                \"option-data\": [ ],\n"
 "                \"pools\": [\n"
 "                    {\n"
@@ -7751,6 +7839,8 @@ const char* UNPARSED_CONFIGS[] = {
 "                \"calculate-tee-times\": false,\n"
 "                \"client-class\": \"beta\",\n"
 "                \"id\": 2,\n"
+"                \"max-valid-lifetime\": 4000,\n"
+"                \"min-valid-lifetime\": 4000,\n"
 "                \"option-data\": [ ],\n"
 "                \"pools\": [\n"
 "                    {\n"
@@ -7777,6 +7867,8 @@ const char* UNPARSED_CONFIGS[] = {
 "                \"calculate-tee-times\": false,\n"
 "                \"client-class\": \"gamma\",\n"
 "                \"id\": 3,\n"
+"                \"max-valid-lifetime\": 4000,\n"
+"                \"min-valid-lifetime\": 4000,\n"
 "                \"option-data\": [ ],\n"
 "                \"pools\": [\n"
 "                    {\n"
@@ -7802,6 +7894,8 @@ const char* UNPARSED_CONFIGS[] = {
 "                \"4o6-subnet\": \"\",\n"
 "                \"calculate-tee-times\": false,\n"
 "                \"id\": 4,\n"
+"                \"max-valid-lifetime\": 4000,\n"
+"                \"min-valid-lifetime\": 4000,\n"
 "                \"option-data\": [ ],\n"
 "                \"pools\": [\n"
 "                    {\n"
@@ -7908,6 +8002,8 @@ const char* UNPARSED_CONFIGS[] = {
 "                \"4o6-subnet\": \"\",\n"
 "                \"calculate-tee-times\": false,\n"
 "                \"id\": 1,\n"
+"                \"max-valid-lifetime\": 4000,\n"
+"                \"min-valid-lifetime\": 4000,\n"
 "                \"option-data\": [ ],\n"
 "                \"pools\": [\n"
 "                    {\n"
@@ -8029,6 +8125,8 @@ const char* UNPARSED_CONFIGS[] = {
 "                \"4o6-subnet\": \"\",\n"
 "                \"calculate-tee-times\": false,\n"
 "                \"id\": 123,\n"
+"                \"max-valid-lifetime\": 4000,\n"
+"                \"min-valid-lifetime\": 4000,\n"
 "                \"option-data\": [ ],\n"
 "                \"pools\": [\n"
 "                    {\n"
@@ -8054,6 +8152,8 @@ const char* UNPARSED_CONFIGS[] = {
 "                \"4o6-subnet\": \"\",\n"
 "                \"calculate-tee-times\": false,\n"
 "                \"id\": 234,\n"
+"                \"max-valid-lifetime\": 4000,\n"
+"                \"min-valid-lifetime\": 4000,\n"
 "                \"option-data\": [ ],\n"
 "                \"pools\": [\n"
 "                    {\n"
@@ -8134,6 +8234,8 @@ const char* UNPARSED_CONFIGS[] = {
 "                \"4o6-subnet\": \"\",\n"
 "                \"calculate-tee-times\": false,\n"
 "                \"id\": 542,\n"
+"                \"max-valid-lifetime\": 4000,\n"
+"                \"min-valid-lifetime\": 4000,\n"
 "                \"option-data\": [ ],\n"
 "                \"pools\": [\n"
 "                    {\n"
@@ -8298,6 +8400,8 @@ const char* UNPARSED_CONFIGS[] = {
 "                \"4o6-subnet\": \"\",\n"
 "                \"calculate-tee-times\": false,\n"
 "                \"id\": 234,\n"
+"                \"max-valid-lifetime\": 4000,\n"
+"                \"min-valid-lifetime\": 4000,\n"
 "                \"option-data\": [ ],\n"
 "                \"pools\": [\n"
 "                    {\n"
@@ -8424,6 +8528,8 @@ const char* UNPARSED_CONFIGS[] = {
 "                \"4o6-subnet\": \"\",\n"
 "                \"calculate-tee-times\": false,\n"
 "                \"id\": 1,\n"
+"                \"max-valid-lifetime\": 4000,\n"
+"                \"min-valid-lifetime\": 4000,\n"
 "                \"option-data\": [ ],\n"
 "                \"pools\": [\n"
 "                    {\n"
@@ -8452,6 +8558,8 @@ const char* UNPARSED_CONFIGS[] = {
 "                \"4o6-subnet\": \"\",\n"
 "                \"calculate-tee-times\": false,\n"
 "                \"id\": 2,\n"
+"                \"max-valid-lifetime\": 4000,\n"
+"                \"min-valid-lifetime\": 4000,\n"
 "                \"option-data\": [ ],\n"
 "                \"pools\": [\n"
 "                    {\n"
@@ -8480,6 +8588,8 @@ const char* UNPARSED_CONFIGS[] = {
 "                \"4o6-subnet\": \"\",\n"
 "                \"calculate-tee-times\": false,\n"
 "                \"id\": 3,\n"
+"                \"max-valid-lifetime\": 4000,\n"
+"                \"min-valid-lifetime\": 4000,\n"
 "                \"option-data\": [ ],\n"
 "                \"pools\": [\n"
 "                    {\n"
@@ -8507,6 +8617,8 @@ const char* UNPARSED_CONFIGS[] = {
 "                \"4o6-subnet\": \"\",\n"
 "                \"calculate-tee-times\": false,\n"
 "                \"id\": 4,\n"
+"                \"max-valid-lifetime\": 4000,\n"
+"                \"min-valid-lifetime\": 4000,\n"
 "                \"option-data\": [ ],\n"
 "                \"pools\": [\n"
 "                    {\n"
@@ -8534,6 +8646,8 @@ const char* UNPARSED_CONFIGS[] = {
 "                \"4o6-subnet\": \"\",\n"
 "                \"calculate-tee-times\": false,\n"
 "                \"id\": 5,\n"
+"                \"max-valid-lifetime\": 4000,\n"
+"                \"min-valid-lifetime\": 4000,\n"
 "                \"option-data\": [ ],\n"
 "                \"pools\": [\n"
 "                    {\n"
@@ -8559,6 +8673,8 @@ const char* UNPARSED_CONFIGS[] = {
 "                \"4o6-subnet\": \"\",\n"
 "                \"calculate-tee-times\": false,\n"
 "                \"id\": 6,\n"
+"                \"max-valid-lifetime\": 4000,\n"
+"                \"min-valid-lifetime\": 4000,\n"
 "                \"option-data\": [ ],\n"
 "                \"pools\": [\n"
 "                    {\n"
@@ -8587,6 +8703,8 @@ const char* UNPARSED_CONFIGS[] = {
 "                \"4o6-subnet\": \"\",\n"
 "                \"calculate-tee-times\": false,\n"
 "                \"id\": 7,\n"
+"                \"max-valid-lifetime\": 4000,\n"
+"                \"min-valid-lifetime\": 4000,\n"
 "                \"option-data\": [ ],\n"
 "                \"pools\": [\n"
 "                    {\n"
@@ -8696,6 +8814,8 @@ const char* UNPARSED_CONFIGS[] = {
 "                \"4o6-subnet\": \"\",\n"
 "                \"calculate-tee-times\": false,\n"
 "                \"id\": 1,\n"
+"                \"max-valid-lifetime\": 4000,\n"
+"                \"min-valid-lifetime\": 4000,\n"
 "                \"option-data\": [ ],\n"
 "                \"pools\": [\n"
 "                    {\n"
@@ -8724,6 +8844,8 @@ const char* UNPARSED_CONFIGS[] = {
 "                \"4o6-subnet\": \"\",\n"
 "                \"calculate-tee-times\": false,\n"
 "                \"id\": 2,\n"
+"                \"max-valid-lifetime\": 4000,\n"
+"                \"min-valid-lifetime\": 4000,\n"
 "                \"option-data\": [ ],\n"
 "                \"pools\": [\n"
 "                    {\n"
@@ -9142,6 +9264,8 @@ const char* UNPARSED_CONFIGS[] = {
 "                \"4o6-subnet\": \"\",\n"
 "                \"calculate-tee-times\": false,\n"
 "                \"id\": 1,\n"
+"                \"max-valid-lifetime\": 4000,\n"
+"                \"min-valid-lifetime\": 4000,\n"
 "                \"option-data\": [ ],\n"
 "                \"pools\": [\n"
 "                    {\n"
@@ -9248,6 +9372,8 @@ const char* UNPARSED_CONFIGS[] = {
 "                \"4o6-subnet\": \"2001:db8::123/45\",\n"
 "                \"calculate-tee-times\": false,\n"
 "                \"id\": 1,\n"
+"                \"max-valid-lifetime\": 4000,\n"
+"                \"min-valid-lifetime\": 4000,\n"
 "                \"option-data\": [ ],\n"
 "                \"pools\": [\n"
 "                    {\n"
@@ -9354,6 +9480,8 @@ const char* UNPARSED_CONFIGS[] = {
 "                \"4o6-subnet\": \"\",\n"
 "                \"calculate-tee-times\": false,\n"
 "                \"id\": 1,\n"
+"                \"max-valid-lifetime\": 4000,\n"
+"                \"min-valid-lifetime\": 4000,\n"
 "                \"option-data\": [ ],\n"
 "                \"pools\": [\n"
 "                    {\n"
@@ -9460,6 +9588,8 @@ const char* UNPARSED_CONFIGS[] = {
 "                \"4o6-subnet\": \"2001:db8::543/21\",\n"
 "                \"calculate-tee-times\": false,\n"
 "                \"id\": 1,\n"
+"                \"max-valid-lifetime\": 4000,\n"
+"                \"min-valid-lifetime\": 4000,\n"
 "                \"option-data\": [ ],\n"
 "                \"pools\": [\n"
 "                    {\n"
@@ -9566,6 +9696,8 @@ const char* UNPARSED_CONFIGS[] = {
 "                \"4o6-subnet\": \"\",\n"
 "                \"calculate-tee-times\": false,\n"
 "                \"id\": 1,\n"
+"                \"max-valid-lifetime\": 4000,\n"
+"                \"min-valid-lifetime\": 4000,\n"
 "                \"option-data\": [ ],\n"
 "                \"pools\": [\n"
 "                    {\n"
@@ -9698,6 +9830,8 @@ const char* UNPARSED_CONFIGS[] = {
 "                \"4o6-subnet\": \"\",\n"
 "                \"calculate-tee-times\": false,\n"
 "                \"id\": 1,\n"
+"                \"max-valid-lifetime\": 4000,\n"
+"                \"min-valid-lifetime\": 4000,\n"
 "                \"option-data\": [ ],\n"
 "                \"pools\": [\n"
 "                    {\n"
@@ -9823,6 +9957,8 @@ const char* UNPARSED_CONFIGS[] = {
 "                \"4o6-subnet\": \"\",\n"
 "                \"calculate-tee-times\": false,\n"
 "                \"id\": 1,\n"
+"                \"max-valid-lifetime\": 7200,\n"
+"                \"min-valid-lifetime\": 7200,\n"
 "                \"option-data\": [ ],\n"
 "                \"pools\": [\n"
 "                    {\n"
@@ -9927,6 +10063,8 @@ const char* UNPARSED_CONFIGS[] = {
 "                \"4o6-subnet\": \"\",\n"
 "                \"calculate-tee-times\": false,\n"
 "                \"id\": 1,\n"
+"                \"max-valid-lifetime\": 4000,\n"
+"                \"min-valid-lifetime\": 4000,\n"
 "                \"option-data\": [ ],\n"
 "                \"pools\": [\n"
 "                    {\n"
@@ -10033,6 +10171,8 @@ const char* UNPARSED_CONFIGS[] = {
 "                \"4o6-subnet\": \"\",\n"
 "                \"calculate-tee-times\": false,\n"
 "                \"id\": 1,\n"
+"                \"max-valid-lifetime\": 4000,\n"
+"                \"min-valid-lifetime\": 4000,\n"
 "                \"option-data\": [ ],\n"
 "                \"pools\": [\n"
 "                    {\n"
@@ -10140,6 +10280,8 @@ const char* UNPARSED_CONFIGS[] = {
 "                \"4o6-subnet\": \"\",\n"
 "                \"calculate-tee-times\": false,\n"
 "                \"id\": 1,\n"
+"                \"max-valid-lifetime\": 4000,\n"
+"                \"min-valid-lifetime\": 4000,\n"
 "                \"option-data\": [ ],\n"
 "                \"pools\": [\n"
 "                    {\n"
@@ -10251,6 +10393,8 @@ const char* UNPARSED_CONFIGS[] = {
 "                \"4o6-subnet\": \"\",\n"
 "                \"calculate-tee-times\": false,\n"
 "                \"id\": 1,\n"
+"                \"max-valid-lifetime\": 4000,\n"
+"                \"min-valid-lifetime\": 4000,\n"
 "                \"option-data\": [ ],\n"
 "                \"pools\": [\n"
 "                    {\n"
@@ -10518,6 +10662,8 @@ const char* UNPARSED_CONFIGS[] = {
 "        \"shared-networks\": [\n"
 "            {\n"
 "                \"calculate-tee-times\": false,\n"
+"                \"max-valid-lifetime\": 7200,\n"
+"                \"min-valid-lifetime\": 7200,\n"
 "                \"name\": \"foo\",\n"
 "                \"option-data\": [ ],\n"
 "                \"relay\": {\n"
@@ -10531,6 +10677,8 @@ const char* UNPARSED_CONFIGS[] = {
 "                        \"4o6-subnet\": \"\",\n"
 "                        \"calculate-tee-times\": false,\n"
 "                        \"id\": 100,\n"
+"                        \"max-valid-lifetime\": 7200,\n"
+"                        \"min-valid-lifetime\": 7200,\n"
 "                        \"option-data\": [ ],\n"
 "                        \"pools\": [\n"
 "                            {\n"
@@ -10736,6 +10884,8 @@ const char* UNPARSED_CONFIGS[] = {
 "                \"4o6-subnet\": \"\",\n"
 "                \"calculate-tee-times\": false,\n"
 "                \"id\": 123,\n"
+"                \"max-valid-lifetime\": 4000,\n"
+"                \"min-valid-lifetime\": 4000,\n"
 "                \"option-data\": [ ],\n"
 "                \"pools\": [\n"
 "                    {\n"
@@ -10761,6 +10911,8 @@ const char* UNPARSED_CONFIGS[] = {
 "                \"4o6-subnet\": \"\",\n"
 "                \"calculate-tee-times\": false,\n"
 "                \"id\": 542,\n"
+"                \"max-valid-lifetime\": 4000,\n"
+"                \"min-valid-lifetime\": 4000,\n"
 "                \"option-data\": [ ],\n"
 "                \"pools\": [\n"
 "                    {\n"
@@ -10857,6 +11009,8 @@ const char* UNPARSED_CONFIGS[] = {
 "        \"shared-networks\": [\n"
 "            {\n"
 "                \"calculate-tee-times\": true,\n"
+"                \"max-valid-lifetime\": 4000,\n"
+"                \"min-valid-lifetime\": 4000,\n"
 "                \"name\": \"foo\",\n"
 "                \"option-data\": [ ],\n"
 "                \"relay\": {\n"
@@ -10870,6 +11024,8 @@ const char* UNPARSED_CONFIGS[] = {
 "                        \"4o6-subnet\": \"\",\n"
 "                        \"calculate-tee-times\": false,\n"
 "                        \"id\": 100,\n"
+"                        \"max-valid-lifetime\": 4000,\n"
+"                        \"min-valid-lifetime\": 4000,\n"
 "                        \"option-data\": [ ],\n"
 "                        \"pools\": [\n"
 "                            {\n"
@@ -10893,6 +11049,8 @@ const char* UNPARSED_CONFIGS[] = {
 "                        \"4o6-subnet\": \"\",\n"
 "                        \"calculate-tee-times\": true,\n"
 "                        \"id\": 200,\n"
+"                        \"max-valid-lifetime\": 4000,\n"
+"                        \"min-valid-lifetime\": 4000,\n"
 "                        \"option-data\": [ ],\n"
 "                        \"pools\": [\n"
 "                            {\n"
@@ -10926,6 +11084,8 @@ const char* UNPARSED_CONFIGS[] = {
 "                \"4o6-subnet\": \"\",\n"
 "                \"calculate-tee-times\": false,\n"
 "                \"id\": 300,\n"
+"                \"max-valid-lifetime\": 4000,\n"
+"                \"min-valid-lifetime\": 4000,\n"
 "                \"option-data\": [ ],\n"
 "                \"pools\": [\n"
 "                    {\n"
@@ -11030,6 +11190,8 @@ const char* UNPARSED_CONFIGS[] = {
 "                \"4o6-subnet\": \"\",\n"
 "                \"calculate-tee-times\": false,\n"
 "                \"id\": 1,\n"
+"                \"max-valid-lifetime\": 4000,\n"
+"                \"min-valid-lifetime\": 4000,\n"
 "                \"option-data\": [ ],\n"
 "                \"pools\": [\n"
 "                    {\n"
@@ -11055,6 +11217,8 @@ const char* UNPARSED_CONFIGS[] = {
 "                \"4o6-subnet\": \"\",\n"
 "                \"calculate-tee-times\": false,\n"
 "                \"id\": 2,\n"
+"                \"max-valid-lifetime\": 4000,\n"
+"                \"min-valid-lifetime\": 4000,\n"
 "                \"option-data\": [ ],\n"
 "                \"pools\": [\n"
 "                    {\n"
@@ -11161,6 +11325,8 @@ const char* UNPARSED_CONFIGS[] = {
 "                \"4o6-subnet\": \"\",\n"
 "                \"calculate-tee-times\": false,\n"
 "                \"id\": 1,\n"
+"                \"max-valid-lifetime\": 4000,\n"
+"                \"min-valid-lifetime\": 4000,\n"
 "                \"option-data\": [ ],\n"
 "                \"pools\": [\n"
 "                    {\n"
@@ -11186,6 +11352,8 @@ const char* UNPARSED_CONFIGS[] = {
 "                \"4o6-subnet\": \"\",\n"
 "                \"calculate-tee-times\": false,\n"
 "                \"id\": 2,\n"
+"                \"max-valid-lifetime\": 4000,\n"
+"                \"min-valid-lifetime\": 4000,\n"
 "                \"option-data\": [ ],\n"
 "                \"pools\": [\n"
 "                    {\n"
index 9cb9b967da3877e5ebe6364b23a416635d69e875..1f3a3692e15d76c3f4cc92d0ce59efcfbd55a9db 100644 (file)
@@ -69,7 +69,6 @@ namespace {
 ///@{
 /// @brief extracted configurations
 const char* EXTRACTED_CONFIGS[] = {
-/// put this after const char* EXTRACTED_CONFIGS[] = {
     // CONFIGURATION 0
 "{\n"
 "        \"interfaces-config\": {\n"
@@ -2049,7 +2048,6 @@ const char* EXTRACTED_CONFIGS[] = {
 
 /// @brief unparsed configurations
 const char* UNPARSED_CONFIGS[] = {
-///put this after const char* UNPARSED_CONFIGS[] = {
     // CONFIGURATION 0
 "{\n"
 "        \"calculate-tee-times\": true,\n"
@@ -2338,6 +2336,10 @@ const char* UNPARSED_CONFIGS[] = {
 "            {\n"
 "                \"calculate-tee-times\": true,\n"
 "                \"id\": 1,\n"
+"                \"max-preferred-lifetime\": 3000,\n"
+"                \"max-valid-lifetime\": 4000,\n"
+"                \"min-preferred-lifetime\": 3000,\n"
+"                \"min-valid-lifetime\": 4000,\n"
 "                \"option-data\": [ ],\n"
 "                \"pd-pools\": [ ],\n"
 "                \"pools\": [\n"
@@ -2363,6 +2365,10 @@ const char* UNPARSED_CONFIGS[] = {
 "            {\n"
 "                \"calculate-tee-times\": true,\n"
 "                \"id\": 2,\n"
+"                \"max-preferred-lifetime\": 3000,\n"
+"                \"max-valid-lifetime\": 4000,\n"
+"                \"min-preferred-lifetime\": 3000,\n"
+"                \"min-valid-lifetime\": 4000,\n"
 "                \"option-data\": [ ],\n"
 "                \"pd-pools\": [ ],\n"
 "                \"pools\": [\n"
@@ -2388,6 +2394,10 @@ const char* UNPARSED_CONFIGS[] = {
 "            {\n"
 "                \"calculate-tee-times\": true,\n"
 "                \"id\": 3,\n"
+"                \"max-preferred-lifetime\": 3000,\n"
+"                \"max-valid-lifetime\": 4000,\n"
+"                \"min-preferred-lifetime\": 3000,\n"
+"                \"min-valid-lifetime\": 4000,\n"
 "                \"option-data\": [ ],\n"
 "                \"pd-pools\": [ ],\n"
 "                \"pools\": [\n"
@@ -2413,6 +2423,10 @@ const char* UNPARSED_CONFIGS[] = {
 "            {\n"
 "                \"calculate-tee-times\": true,\n"
 "                \"id\": 4,\n"
+"                \"max-preferred-lifetime\": 3000,\n"
+"                \"max-valid-lifetime\": 4000,\n"
+"                \"min-preferred-lifetime\": 3000,\n"
+"                \"min-valid-lifetime\": 4000,\n"
 "                \"option-data\": [ ],\n"
 "                \"pd-pools\": [ ],\n"
 "                \"pools\": [\n"
@@ -2524,6 +2538,10 @@ const char* UNPARSED_CONFIGS[] = {
 "            {\n"
 "                \"calculate-tee-times\": true,\n"
 "                \"id\": 1,\n"
+"                \"max-preferred-lifetime\": 3000,\n"
+"                \"max-valid-lifetime\": 4000,\n"
+"                \"min-preferred-lifetime\": 3000,\n"
+"                \"min-valid-lifetime\": 4000,\n"
 "                \"option-data\": [ ],\n"
 "                \"pd-pools\": [ ],\n"
 "                \"pools\": [\n"
@@ -2549,6 +2567,10 @@ const char* UNPARSED_CONFIGS[] = {
 "            {\n"
 "                \"calculate-tee-times\": true,\n"
 "                \"id\": 34,\n"
+"                \"max-preferred-lifetime\": 3000,\n"
+"                \"max-valid-lifetime\": 4000,\n"
+"                \"min-preferred-lifetime\": 3000,\n"
+"                \"min-valid-lifetime\": 4000,\n"
 "                \"option-data\": [ ],\n"
 "                \"pd-pools\": [ ],\n"
 "                \"pools\": [\n"
@@ -2574,6 +2596,10 @@ const char* UNPARSED_CONFIGS[] = {
 "            {\n"
 "                \"calculate-tee-times\": true,\n"
 "                \"id\": 100,\n"
+"                \"max-preferred-lifetime\": 3000,\n"
+"                \"max-valid-lifetime\": 4000,\n"
+"                \"min-preferred-lifetime\": 3000,\n"
+"                \"min-valid-lifetime\": 4000,\n"
 "                \"option-data\": [ ],\n"
 "                \"pd-pools\": [ ],\n"
 "                \"pools\": [\n"
@@ -2599,6 +2625,10 @@ const char* UNPARSED_CONFIGS[] = {
 "            {\n"
 "                \"calculate-tee-times\": true,\n"
 "                \"id\": 1024,\n"
+"                \"max-preferred-lifetime\": 3000,\n"
+"                \"max-valid-lifetime\": 4000,\n"
+"                \"min-preferred-lifetime\": 3000,\n"
+"                \"min-valid-lifetime\": 4000,\n"
 "                \"option-data\": [ ],\n"
 "                \"pd-pools\": [ ],\n"
 "                \"pools\": [\n"
@@ -2710,6 +2740,10 @@ const char* UNPARSED_CONFIGS[] = {
 "            {\n"
 "                \"calculate-tee-times\": true,\n"
 "                \"id\": 1,\n"
+"                \"max-preferred-lifetime\": 3000,\n"
+"                \"max-valid-lifetime\": 4000,\n"
+"                \"min-preferred-lifetime\": 3000,\n"
+"                \"min-valid-lifetime\": 4000,\n"
 "                \"option-data\": [ ],\n"
 "                \"pd-pools\": [ ],\n"
 "                \"pools\": [\n"
@@ -2735,6 +2769,10 @@ const char* UNPARSED_CONFIGS[] = {
 "            {\n"
 "                \"calculate-tee-times\": true,\n"
 "                \"id\": 2,\n"
+"                \"max-preferred-lifetime\": 3000,\n"
+"                \"max-valid-lifetime\": 4000,\n"
+"                \"min-preferred-lifetime\": 3000,\n"
+"                \"min-valid-lifetime\": 4000,\n"
 "                \"option-data\": [ ],\n"
 "                \"pd-pools\": [ ],\n"
 "                \"pools\": [\n"
@@ -2760,6 +2798,10 @@ const char* UNPARSED_CONFIGS[] = {
 "            {\n"
 "                \"calculate-tee-times\": true,\n"
 "                \"id\": 3,\n"
+"                \"max-preferred-lifetime\": 3000,\n"
+"                \"max-valid-lifetime\": 4000,\n"
+"                \"min-preferred-lifetime\": 3000,\n"
+"                \"min-valid-lifetime\": 4000,\n"
 "                \"option-data\": [ ],\n"
 "                \"pd-pools\": [ ],\n"
 "                \"pools\": [\n"
@@ -2785,6 +2827,10 @@ const char* UNPARSED_CONFIGS[] = {
 "            {\n"
 "                \"calculate-tee-times\": true,\n"
 "                \"id\": 4,\n"
+"                \"max-preferred-lifetime\": 3000,\n"
+"                \"max-valid-lifetime\": 4000,\n"
+"                \"min-preferred-lifetime\": 3000,\n"
+"                \"min-valid-lifetime\": 4000,\n"
 "                \"option-data\": [ ],\n"
 "                \"pd-pools\": [ ],\n"
 "                \"pools\": [\n"
@@ -3016,6 +3062,10 @@ const char* UNPARSED_CONFIGS[] = {
 "                \"calculate-tee-times\": true,\n"
 "                \"id\": 1,\n"
 "                \"interface\": \"eth0\",\n"
+"                \"max-preferred-lifetime\": 3000,\n"
+"                \"max-valid-lifetime\": 4000,\n"
+"                \"min-preferred-lifetime\": 3000,\n"
+"                \"min-valid-lifetime\": 4000,\n"
 "                \"option-data\": [ ],\n"
 "                \"pd-pools\": [ ],\n"
 "                \"pools\": [\n"
@@ -3128,6 +3178,10 @@ const char* UNPARSED_CONFIGS[] = {
 "                \"calculate-tee-times\": true,\n"
 "                \"id\": 1,\n"
 "                \"interface-id\": \"foobar\",\n"
+"                \"max-preferred-lifetime\": 3000,\n"
+"                \"max-valid-lifetime\": 4000,\n"
+"                \"min-preferred-lifetime\": 3000,\n"
+"                \"min-valid-lifetime\": 4000,\n"
 "                \"option-data\": [ ],\n"
 "                \"pd-pools\": [ ],\n"
 "                \"pools\": [\n"
@@ -3239,6 +3293,10 @@ const char* UNPARSED_CONFIGS[] = {
 "            {\n"
 "                \"calculate-tee-times\": true,\n"
 "                \"id\": 1,\n"
+"                \"max-preferred-lifetime\": 3000,\n"
+"                \"max-valid-lifetime\": 4000,\n"
+"                \"min-preferred-lifetime\": 3000,\n"
+"                \"min-valid-lifetime\": 4000,\n"
 "                \"option-data\": [ ],\n"
 "                \"pd-pools\": [ ],\n"
 "                \"pools\": [\n"
@@ -3268,6 +3326,10 @@ const char* UNPARSED_CONFIGS[] = {
 "            {\n"
 "                \"calculate-tee-times\": true,\n"
 "                \"id\": 2,\n"
+"                \"max-preferred-lifetime\": 3000,\n"
+"                \"max-valid-lifetime\": 4000,\n"
+"                \"min-preferred-lifetime\": 3000,\n"
+"                \"min-valid-lifetime\": 4000,\n"
 "                \"option-data\": [ ],\n"
 "                \"pd-pools\": [ ],\n"
 "                \"pools\": [\n"
@@ -3383,6 +3445,10 @@ const char* UNPARSED_CONFIGS[] = {
 "            {\n"
 "                \"calculate-tee-times\": true,\n"
 "                \"id\": 1,\n"
+"                \"max-preferred-lifetime\": 3000,\n"
+"                \"max-valid-lifetime\": 4000,\n"
+"                \"min-preferred-lifetime\": 3000,\n"
+"                \"min-valid-lifetime\": 4000,\n"
 "                \"option-data\": [ ],\n"
 "                \"pd-pools\": [ ],\n"
 "                \"pools\": [\n"
@@ -3494,6 +3560,10 @@ const char* UNPARSED_CONFIGS[] = {
 "            {\n"
 "                \"calculate-tee-times\": true,\n"
 "                \"id\": 1,\n"
+"                \"max-preferred-lifetime\": 3000,\n"
+"                \"max-valid-lifetime\": 4000,\n"
+"                \"min-preferred-lifetime\": 3000,\n"
+"                \"min-valid-lifetime\": 4000,\n"
 "                \"option-data\": [ ],\n"
 "                \"pd-pools\": [\n"
 "                    {\n"
@@ -3607,6 +3677,10 @@ const char* UNPARSED_CONFIGS[] = {
 "            {\n"
 "                \"calculate-tee-times\": true,\n"
 "                \"id\": 1,\n"
+"                \"max-preferred-lifetime\": 3000,\n"
+"                \"max-valid-lifetime\": 4000,\n"
+"                \"min-preferred-lifetime\": 3000,\n"
+"                \"min-valid-lifetime\": 4000,\n"
 "                \"option-data\": [ ],\n"
 "                \"pd-pools\": [\n"
 "                    {\n"
@@ -3722,6 +3796,10 @@ const char* UNPARSED_CONFIGS[] = {
 "            {\n"
 "                \"calculate-tee-times\": true,\n"
 "                \"id\": 1,\n"
+"                \"max-preferred-lifetime\": 3000,\n"
+"                \"max-valid-lifetime\": 4000,\n"
+"                \"min-preferred-lifetime\": 3000,\n"
+"                \"min-valid-lifetime\": 4000,\n"
 "                \"option-data\": [ ],\n"
 "                \"pd-pools\": [\n"
 "                    {\n"
@@ -3852,6 +3930,10 @@ const char* UNPARSED_CONFIGS[] = {
 "            {\n"
 "                \"calculate-tee-times\": true,\n"
 "                \"id\": 1,\n"
+"                \"max-preferred-lifetime\": 3000,\n"
+"                \"max-valid-lifetime\": 4000,\n"
+"                \"min-preferred-lifetime\": 3000,\n"
+"                \"min-valid-lifetime\": 4000,\n"
 "                \"option-data\": [ ],\n"
 "                \"pd-pools\": [\n"
 "                    {\n"
@@ -4456,6 +4538,10 @@ const char* UNPARSED_CONFIGS[] = {
 "            {\n"
 "                \"calculate-tee-times\": true,\n"
 "                \"id\": 1,\n"
+"                \"max-preferred-lifetime\": 3000,\n"
+"                \"max-valid-lifetime\": 4000,\n"
+"                \"min-preferred-lifetime\": 3000,\n"
+"                \"min-valid-lifetime\": 4000,\n"
 "                \"option-data\": [ ],\n"
 "                \"pd-pools\": [ ],\n"
 "                \"pools\": [\n"
@@ -4567,6 +4653,10 @@ const char* UNPARSED_CONFIGS[] = {
 "            {\n"
 "                \"calculate-tee-times\": true,\n"
 "                \"id\": 1,\n"
+"                \"max-preferred-lifetime\": 3000,\n"
+"                \"max-valid-lifetime\": 4000,\n"
+"                \"min-preferred-lifetime\": 3000,\n"
+"                \"min-valid-lifetime\": 4000,\n"
 "                \"option-data\": [\n"
 "                    {\n"
 "                        \"always-send\": false,\n"
@@ -4722,6 +4812,10 @@ const char* UNPARSED_CONFIGS[] = {
 "            {\n"
 "                \"calculate-tee-times\": true,\n"
 "                \"id\": 1,\n"
+"                \"max-preferred-lifetime\": 3000,\n"
+"                \"max-valid-lifetime\": 4000,\n"
+"                \"min-preferred-lifetime\": 3000,\n"
+"                \"min-valid-lifetime\": 4000,\n"
 "                \"option-data\": [ ],\n"
 "                \"pd-pools\": [ ],\n"
 "                \"pools\": [\n"
@@ -5007,6 +5101,10 @@ const char* UNPARSED_CONFIGS[] = {
 "            {\n"
 "                \"calculate-tee-times\": true,\n"
 "                \"id\": 1,\n"
+"                \"max-preferred-lifetime\": 3000,\n"
+"                \"max-valid-lifetime\": 4000,\n"
+"                \"min-preferred-lifetime\": 3000,\n"
+"                \"min-valid-lifetime\": 4000,\n"
 "                \"option-data\": [ ],\n"
 "                \"pd-pools\": [ ],\n"
 "                \"pools\": [\n"
@@ -5118,6 +5216,10 @@ const char* UNPARSED_CONFIGS[] = {
 "            {\n"
 "                \"calculate-tee-times\": true,\n"
 "                \"id\": 1,\n"
+"                \"max-preferred-lifetime\": 3000,\n"
+"                \"max-valid-lifetime\": 4000,\n"
+"                \"min-preferred-lifetime\": 3000,\n"
+"                \"min-valid-lifetime\": 4000,\n"
 "                \"option-data\": [\n"
 "                    {\n"
 "                        \"always-send\": false,\n"
@@ -5152,6 +5254,10 @@ const char* UNPARSED_CONFIGS[] = {
 "            {\n"
 "                \"calculate-tee-times\": true,\n"
 "                \"id\": 2,\n"
+"                \"max-preferred-lifetime\": 3000,\n"
+"                \"max-valid-lifetime\": 4000,\n"
+"                \"min-preferred-lifetime\": 3000,\n"
+"                \"min-valid-lifetime\": 4000,\n"
 "                \"option-data\": [\n"
 "                    {\n"
 "                        \"always-send\": false,\n"
@@ -5272,6 +5378,10 @@ const char* UNPARSED_CONFIGS[] = {
 "            {\n"
 "                \"calculate-tee-times\": true,\n"
 "                \"id\": 1,\n"
+"                \"max-preferred-lifetime\": 3000,\n"
+"                \"max-valid-lifetime\": 4000,\n"
+"                \"min-preferred-lifetime\": 3000,\n"
+"                \"min-valid-lifetime\": 4000,\n"
 "                \"option-data\": [ ],\n"
 "                \"pd-pools\": [\n"
 "                    {\n"
@@ -5451,6 +5561,10 @@ const char* UNPARSED_CONFIGS[] = {
 "            {\n"
 "                \"calculate-tee-times\": true,\n"
 "                \"id\": 1,\n"
+"                \"max-preferred-lifetime\": 3000,\n"
+"                \"max-valid-lifetime\": 4000,\n"
+"                \"min-preferred-lifetime\": 3000,\n"
+"                \"min-valid-lifetime\": 4000,\n"
 "                \"option-data\": [ ],\n"
 "                \"pd-pools\": [ ],\n"
 "                \"pools\": [\n"
@@ -5581,6 +5695,10 @@ const char* UNPARSED_CONFIGS[] = {
 "            {\n"
 "                \"calculate-tee-times\": true,\n"
 "                \"id\": 1,\n"
+"                \"max-preferred-lifetime\": 3000,\n"
+"                \"max-valid-lifetime\": 4000,\n"
+"                \"min-preferred-lifetime\": 3000,\n"
+"                \"min-valid-lifetime\": 4000,\n"
 "                \"option-data\": [ ],\n"
 "                \"pd-pools\": [ ],\n"
 "                \"pools\": [\n"
@@ -5862,6 +5980,10 @@ const char* UNPARSED_CONFIGS[] = {
 "            {\n"
 "                \"calculate-tee-times\": true,\n"
 "                \"id\": 1,\n"
+"                \"max-preferred-lifetime\": 3000,\n"
+"                \"max-valid-lifetime\": 4000,\n"
+"                \"min-preferred-lifetime\": 3000,\n"
+"                \"min-valid-lifetime\": 4000,\n"
 "                \"option-data\": [ ],\n"
 "                \"pd-pools\": [ ],\n"
 "                \"pools\": [\n"
@@ -5973,6 +6095,10 @@ const char* UNPARSED_CONFIGS[] = {
 "            {\n"
 "                \"calculate-tee-times\": true,\n"
 "                \"id\": 1,\n"
+"                \"max-preferred-lifetime\": 3000,\n"
+"                \"max-valid-lifetime\": 4000,\n"
+"                \"min-preferred-lifetime\": 3000,\n"
+"                \"min-valid-lifetime\": 4000,\n"
 "                \"option-data\": [ ],\n"
 "                \"pd-pools\": [ ],\n"
 "                \"pools\": [\n"
@@ -6085,6 +6211,10 @@ const char* UNPARSED_CONFIGS[] = {
 "                \"calculate-tee-times\": true,\n"
 "                \"client-class\": \"alpha\",\n"
 "                \"id\": 1,\n"
+"                \"max-preferred-lifetime\": 3000,\n"
+"                \"max-valid-lifetime\": 4000,\n"
+"                \"min-preferred-lifetime\": 3000,\n"
+"                \"min-valid-lifetime\": 4000,\n"
 "                \"option-data\": [ ],\n"
 "                \"pd-pools\": [ ],\n"
 "                \"pools\": [\n"
@@ -6111,6 +6241,10 @@ const char* UNPARSED_CONFIGS[] = {
 "                \"calculate-tee-times\": true,\n"
 "                \"client-class\": \"beta\",\n"
 "                \"id\": 2,\n"
+"                \"max-preferred-lifetime\": 3000,\n"
+"                \"max-valid-lifetime\": 4000,\n"
+"                \"min-preferred-lifetime\": 3000,\n"
+"                \"min-valid-lifetime\": 4000,\n"
 "                \"option-data\": [ ],\n"
 "                \"pd-pools\": [ ],\n"
 "                \"pools\": [\n"
@@ -6137,6 +6271,10 @@ const char* UNPARSED_CONFIGS[] = {
 "                \"calculate-tee-times\": true,\n"
 "                \"client-class\": \"gamma\",\n"
 "                \"id\": 3,\n"
+"                \"max-preferred-lifetime\": 3000,\n"
+"                \"max-valid-lifetime\": 4000,\n"
+"                \"min-preferred-lifetime\": 3000,\n"
+"                \"min-valid-lifetime\": 4000,\n"
 "                \"option-data\": [ ],\n"
 "                \"pd-pools\": [ ],\n"
 "                \"pools\": [\n"
@@ -6162,6 +6300,10 @@ const char* UNPARSED_CONFIGS[] = {
 "            {\n"
 "                \"calculate-tee-times\": true,\n"
 "                \"id\": 4,\n"
+"                \"max-preferred-lifetime\": 3000,\n"
+"                \"max-valid-lifetime\": 4000,\n"
+"                \"min-preferred-lifetime\": 3000,\n"
+"                \"min-valid-lifetime\": 4000,\n"
 "                \"option-data\": [ ],\n"
 "                \"pd-pools\": [ ],\n"
 "                \"pools\": [\n"
@@ -6273,6 +6415,10 @@ const char* UNPARSED_CONFIGS[] = {
 "            {\n"
 "                \"calculate-tee-times\": true,\n"
 "                \"id\": 1,\n"
+"                \"max-preferred-lifetime\": 3000,\n"
+"                \"max-valid-lifetime\": 4000,\n"
+"                \"min-preferred-lifetime\": 3000,\n"
+"                \"min-valid-lifetime\": 4000,\n"
 "                \"option-data\": [ ],\n"
 "                \"pd-pools\": [ ],\n"
 "                \"pools\": [\n"
@@ -6399,6 +6545,10 @@ const char* UNPARSED_CONFIGS[] = {
 "            {\n"
 "                \"calculate-tee-times\": true,\n"
 "                \"id\": 1,\n"
+"                \"max-preferred-lifetime\": 3000,\n"
+"                \"max-valid-lifetime\": 4000,\n"
+"                \"min-preferred-lifetime\": 3000,\n"
+"                \"min-valid-lifetime\": 4000,\n"
 "                \"option-data\": [ ],\n"
 "                \"pd-pools\": [\n"
 "                    {\n"
@@ -6533,6 +6683,10 @@ const char* UNPARSED_CONFIGS[] = {
 "            {\n"
 "                \"calculate-tee-times\": true,\n"
 "                \"id\": 1,\n"
+"                \"max-preferred-lifetime\": 3000,\n"
+"                \"max-valid-lifetime\": 4000,\n"
+"                \"min-preferred-lifetime\": 3000,\n"
+"                \"min-valid-lifetime\": 4000,\n"
 "                \"option-data\": [ ],\n"
 "                \"pd-pools\": [ ],\n"
 "                \"pools\": [\n"
@@ -6644,6 +6798,10 @@ const char* UNPARSED_CONFIGS[] = {
 "            {\n"
 "                \"calculate-tee-times\": true,\n"
 "                \"id\": 1,\n"
+"                \"max-preferred-lifetime\": 3000,\n"
+"                \"max-valid-lifetime\": 4000,\n"
+"                \"min-preferred-lifetime\": 3000,\n"
+"                \"min-valid-lifetime\": 4000,\n"
 "                \"option-data\": [ ],\n"
 "                \"pd-pools\": [ ],\n"
 "                \"pools\": [\n"
@@ -6755,6 +6913,10 @@ const char* UNPARSED_CONFIGS[] = {
 "            {\n"
 "                \"calculate-tee-times\": true,\n"
 "                \"id\": 1,\n"
+"                \"max-preferred-lifetime\": 3000,\n"
+"                \"max-valid-lifetime\": 4000,\n"
+"                \"min-preferred-lifetime\": 3000,\n"
+"                \"min-valid-lifetime\": 4000,\n"
 "                \"option-data\": [ ],\n"
 "                \"pd-pools\": [ ],\n"
 "                \"pools\": [\n"
@@ -6866,6 +7028,10 @@ const char* UNPARSED_CONFIGS[] = {
 "            {\n"
 "                \"calculate-tee-times\": true,\n"
 "                \"id\": 123,\n"
+"                \"max-preferred-lifetime\": 3000,\n"
+"                \"max-valid-lifetime\": 4000,\n"
+"                \"min-preferred-lifetime\": 3000,\n"
+"                \"min-valid-lifetime\": 4000,\n"
 "                \"option-data\": [ ],\n"
 "                \"pd-pools\": [ ],\n"
 "                \"pools\": [\n"
@@ -6891,6 +7057,10 @@ const char* UNPARSED_CONFIGS[] = {
 "            {\n"
 "                \"calculate-tee-times\": true,\n"
 "                \"id\": 234,\n"
+"                \"max-preferred-lifetime\": 3000,\n"
+"                \"max-valid-lifetime\": 4000,\n"
+"                \"min-preferred-lifetime\": 3000,\n"
+"                \"min-valid-lifetime\": 4000,\n"
 "                \"option-data\": [ ],\n"
 "                \"pd-pools\": [ ],\n"
 "                \"pools\": [ ],\n"
@@ -6962,6 +7132,10 @@ const char* UNPARSED_CONFIGS[] = {
 "            {\n"
 "                \"calculate-tee-times\": true,\n"
 "                \"id\": 542,\n"
+"                \"max-preferred-lifetime\": 3000,\n"
+"                \"max-valid-lifetime\": 4000,\n"
+"                \"min-preferred-lifetime\": 3000,\n"
+"                \"min-valid-lifetime\": 4000,\n"
 "                \"option-data\": [ ],\n"
 "                \"pd-pools\": [ ],\n"
 "                \"pools\": [ ],\n"
@@ -7112,6 +7286,10 @@ const char* UNPARSED_CONFIGS[] = {
 "            {\n"
 "                \"calculate-tee-times\": true,\n"
 "                \"id\": 234,\n"
+"                \"max-preferred-lifetime\": 3000,\n"
+"                \"max-valid-lifetime\": 4000,\n"
+"                \"min-preferred-lifetime\": 3000,\n"
+"                \"min-valid-lifetime\": 4000,\n"
 "                \"option-data\": [ ],\n"
 "                \"pd-pools\": [ ],\n"
 "                \"pools\": [ ],\n"
@@ -7406,6 +7584,10 @@ const char* UNPARSED_CONFIGS[] = {
 "            {\n"
 "                \"calculate-tee-times\": true,\n"
 "                \"id\": 1,\n"
+"                \"max-preferred-lifetime\": 3000,\n"
+"                \"max-valid-lifetime\": 4000,\n"
+"                \"min-preferred-lifetime\": 3000,\n"
+"                \"min-valid-lifetime\": 4000,\n"
 "                \"option-data\": [ ],\n"
 "                \"pd-pools\": [ ],\n"
 "                \"pools\": [\n"
@@ -7434,6 +7616,10 @@ const char* UNPARSED_CONFIGS[] = {
 "            {\n"
 "                \"calculate-tee-times\": true,\n"
 "                \"id\": 2,\n"
+"                \"max-preferred-lifetime\": 3000,\n"
+"                \"max-valid-lifetime\": 4000,\n"
+"                \"min-preferred-lifetime\": 3000,\n"
+"                \"min-valid-lifetime\": 4000,\n"
 "                \"option-data\": [ ],\n"
 "                \"pd-pools\": [ ],\n"
 "                \"pools\": [\n"
@@ -7462,6 +7648,10 @@ const char* UNPARSED_CONFIGS[] = {
 "            {\n"
 "                \"calculate-tee-times\": true,\n"
 "                \"id\": 3,\n"
+"                \"max-preferred-lifetime\": 3000,\n"
+"                \"max-valid-lifetime\": 4000,\n"
+"                \"min-preferred-lifetime\": 3000,\n"
+"                \"min-valid-lifetime\": 4000,\n"
 "                \"option-data\": [ ],\n"
 "                \"pd-pools\": [ ],\n"
 "                \"pools\": [\n"
@@ -7489,6 +7679,10 @@ const char* UNPARSED_CONFIGS[] = {
 "            {\n"
 "                \"calculate-tee-times\": true,\n"
 "                \"id\": 4,\n"
+"                \"max-preferred-lifetime\": 3000,\n"
+"                \"max-valid-lifetime\": 4000,\n"
+"                \"min-preferred-lifetime\": 3000,\n"
+"                \"min-valid-lifetime\": 4000,\n"
 "                \"option-data\": [ ],\n"
 "                \"pd-pools\": [ ],\n"
 "                \"pools\": [\n"
@@ -7516,6 +7710,10 @@ const char* UNPARSED_CONFIGS[] = {
 "            {\n"
 "                \"calculate-tee-times\": true,\n"
 "                \"id\": 5,\n"
+"                \"max-preferred-lifetime\": 3000,\n"
+"                \"max-valid-lifetime\": 4000,\n"
+"                \"min-preferred-lifetime\": 3000,\n"
+"                \"min-valid-lifetime\": 4000,\n"
 "                \"option-data\": [ ],\n"
 "                \"pd-pools\": [ ],\n"
 "                \"pools\": [\n"
@@ -7541,6 +7739,10 @@ const char* UNPARSED_CONFIGS[] = {
 "            {\n"
 "                \"calculate-tee-times\": true,\n"
 "                \"id\": 6,\n"
+"                \"max-preferred-lifetime\": 3000,\n"
+"                \"max-valid-lifetime\": 4000,\n"
+"                \"min-preferred-lifetime\": 3000,\n"
+"                \"min-valid-lifetime\": 4000,\n"
 "                \"option-data\": [ ],\n"
 "                \"pd-pools\": [ ],\n"
 "                \"pools\": [\n"
@@ -7569,6 +7771,10 @@ const char* UNPARSED_CONFIGS[] = {
 "            {\n"
 "                \"calculate-tee-times\": true,\n"
 "                \"id\": 7,\n"
+"                \"max-preferred-lifetime\": 3000,\n"
+"                \"max-valid-lifetime\": 4000,\n"
+"                \"min-preferred-lifetime\": 3000,\n"
+"                \"min-valid-lifetime\": 4000,\n"
 "                \"option-data\": [ ],\n"
 "                \"pd-pools\": [ ],\n"
 "                \"pools\": [\n"
@@ -7683,6 +7889,10 @@ const char* UNPARSED_CONFIGS[] = {
 "            {\n"
 "                \"calculate-tee-times\": true,\n"
 "                \"id\": 1,\n"
+"                \"max-preferred-lifetime\": 3000,\n"
+"                \"max-valid-lifetime\": 4000,\n"
+"                \"min-preferred-lifetime\": 3000,\n"
+"                \"min-valid-lifetime\": 4000,\n"
 "                \"option-data\": [ ],\n"
 "                \"pd-pools\": [ ],\n"
 "                \"pools\": [\n"
@@ -7711,6 +7921,10 @@ const char* UNPARSED_CONFIGS[] = {
 "            {\n"
 "                \"calculate-tee-times\": true,\n"
 "                \"id\": 2,\n"
+"                \"max-preferred-lifetime\": 3000,\n"
+"                \"max-valid-lifetime\": 4000,\n"
+"                \"min-preferred-lifetime\": 3000,\n"
+"                \"min-valid-lifetime\": 4000,\n"
 "                \"option-data\": [ ],\n"
 "                \"pd-pools\": [ ],\n"
 "                \"pools\": [\n"
@@ -8253,6 +8467,10 @@ const char* UNPARSED_CONFIGS[] = {
 "            {\n"
 "                \"calculate-tee-times\": true,\n"
 "                \"id\": 1,\n"
+"                \"max-preferred-lifetime\": 3000,\n"
+"                \"max-valid-lifetime\": 4000,\n"
+"                \"min-preferred-lifetime\": 3000,\n"
+"                \"min-valid-lifetime\": 4000,\n"
 "                \"option-data\": [ ],\n"
 "                \"pd-pools\": [ ],\n"
 "                \"pools\": [\n"
@@ -8364,6 +8582,10 @@ const char* UNPARSED_CONFIGS[] = {
 "            {\n"
 "                \"calculate-tee-times\": true,\n"
 "                \"id\": 1,\n"
+"                \"max-preferred-lifetime\": 3000,\n"
+"                \"max-valid-lifetime\": 4000,\n"
+"                \"min-preferred-lifetime\": 3000,\n"
+"                \"min-valid-lifetime\": 4000,\n"
 "                \"option-data\": [ ],\n"
 "                \"pd-pools\": [ ],\n"
 "                \"pools\": [\n"
@@ -8475,6 +8697,10 @@ const char* UNPARSED_CONFIGS[] = {
 "            {\n"
 "                \"calculate-tee-times\": true,\n"
 "                \"id\": 1,\n"
+"                \"max-preferred-lifetime\": 3000,\n"
+"                \"max-valid-lifetime\": 4000,\n"
+"                \"min-preferred-lifetime\": 3000,\n"
+"                \"min-valid-lifetime\": 4000,\n"
 "                \"option-data\": [ ],\n"
 "                \"pd-pools\": [ ],\n"
 "                \"pools\": [\n"
@@ -8587,6 +8813,10 @@ const char* UNPARSED_CONFIGS[] = {
 "            {\n"
 "                \"calculate-tee-times\": true,\n"
 "                \"id\": 1,\n"
+"                \"max-preferred-lifetime\": 3000,\n"
+"                \"max-valid-lifetime\": 4000,\n"
+"                \"min-preferred-lifetime\": 3000,\n"
+"                \"min-valid-lifetime\": 4000,\n"
 "                \"option-data\": [ ],\n"
 "                \"pd-pools\": [ ],\n"
 "                \"pools\": [\n"
@@ -8704,6 +8934,10 @@ const char* UNPARSED_CONFIGS[] = {
 "            {\n"
 "                \"calculate-tee-times\": true,\n"
 "                \"id\": 1,\n"
+"                \"max-preferred-lifetime\": 3000,\n"
+"                \"max-valid-lifetime\": 4000,\n"
+"                \"min-preferred-lifetime\": 3000,\n"
+"                \"min-valid-lifetime\": 4000,\n"
 "                \"option-data\": [ ],\n"
 "                \"pd-pools\": [ ],\n"
 "                \"pools\": [\n"
@@ -8821,6 +9055,10 @@ const char* UNPARSED_CONFIGS[] = {
 "            {\n"
 "                \"calculate-tee-times\": true,\n"
 "                \"id\": 1,\n"
+"                \"max-preferred-lifetime\": 3000,\n"
+"                \"max-valid-lifetime\": 4000,\n"
+"                \"min-preferred-lifetime\": 3000,\n"
+"                \"min-valid-lifetime\": 4000,\n"
 "                \"option-data\": [ ],\n"
 "                \"pd-pools\": [\n"
 "                    {\n"
@@ -8934,6 +9172,10 @@ const char* UNPARSED_CONFIGS[] = {
 "            {\n"
 "                \"calculate-tee-times\": true,\n"
 "                \"id\": 1,\n"
+"                \"max-preferred-lifetime\": 3000,\n"
+"                \"max-valid-lifetime\": 4000,\n"
+"                \"min-preferred-lifetime\": 3000,\n"
+"                \"min-valid-lifetime\": 4000,\n"
 "                \"option-data\": [ ],\n"
 "                \"pd-pools\": [\n"
 "                    {\n"
@@ -9048,6 +9290,10 @@ const char* UNPARSED_CONFIGS[] = {
 "            {\n"
 "                \"calculate-tee-times\": true,\n"
 "                \"id\": 1,\n"
+"                \"max-preferred-lifetime\": 3000,\n"
+"                \"max-valid-lifetime\": 4000,\n"
+"                \"min-preferred-lifetime\": 3000,\n"
+"                \"min-valid-lifetime\": 4000,\n"
 "                \"option-data\": [ ],\n"
 "                \"pd-pools\": [\n"
 "                    {\n"
@@ -9322,6 +9568,10 @@ const char* UNPARSED_CONFIGS[] = {
 "        \"shared-networks\": [\n"
 "            {\n"
 "                \"calculate-tee-times\": true,\n"
+"                \"max-preferred-lifetime\": 3600,\n"
+"                \"max-valid-lifetime\": 7200,\n"
+"                \"min-preferred-lifetime\": 3600,\n"
+"                \"min-valid-lifetime\": 7200,\n"
 "                \"name\": \"foo\",\n"
 "                \"option-data\": [ ],\n"
 "                \"preferred-lifetime\": 3600,\n"
@@ -9334,6 +9584,10 @@ const char* UNPARSED_CONFIGS[] = {
 "                    {\n"
 "                        \"calculate-tee-times\": true,\n"
 "                        \"id\": 100,\n"
+"                        \"max-preferred-lifetime\": 3600,\n"
+"                        \"max-valid-lifetime\": 7200,\n"
+"                        \"min-preferred-lifetime\": 3600,\n"
+"                        \"min-valid-lifetime\": 7200,\n"
 "                        \"option-data\": [ ],\n"
 "                        \"pd-pools\": [\n"
 "                            {\n"
@@ -9549,6 +9803,10 @@ const char* UNPARSED_CONFIGS[] = {
 "            {\n"
 "                \"calculate-tee-times\": true,\n"
 "                \"id\": 123,\n"
+"                \"max-preferred-lifetime\": 3000,\n"
+"                \"max-valid-lifetime\": 4000,\n"
+"                \"min-preferred-lifetime\": 3000,\n"
+"                \"min-valid-lifetime\": 4000,\n"
 "                \"option-data\": [ ],\n"
 "                \"pd-pools\": [ ],\n"
 "                \"pools\": [\n"
@@ -9574,6 +9832,10 @@ const char* UNPARSED_CONFIGS[] = {
 "            {\n"
 "                \"calculate-tee-times\": true,\n"
 "                \"id\": 234,\n"
+"                \"max-preferred-lifetime\": 3000,\n"
+"                \"max-valid-lifetime\": 4000,\n"
+"                \"min-preferred-lifetime\": 3000,\n"
+"                \"min-valid-lifetime\": 4000,\n"
 "                \"option-data\": [ ],\n"
 "                \"pd-pools\": [ ],\n"
 "                \"pools\": [ ],\n"
@@ -9594,6 +9856,10 @@ const char* UNPARSED_CONFIGS[] = {
 "            {\n"
 "                \"calculate-tee-times\": true,\n"
 "                \"id\": 542,\n"
+"                \"max-preferred-lifetime\": 3000,\n"
+"                \"max-valid-lifetime\": 4000,\n"
+"                \"min-preferred-lifetime\": 3000,\n"
+"                \"min-valid-lifetime\": 4000,\n"
 "                \"option-data\": [ ],\n"
 "                \"pd-pools\": [ ],\n"
 "                \"pools\": [ ],\n"
@@ -9965,6 +10231,10 @@ const char* UNPARSED_CONFIGS[] = {
 "            {\n"
 "                \"calculate-tee-times\": true,\n"
 "                \"id\": 1,\n"
+"                \"max-preferred-lifetime\": 3600,\n"
+"                \"max-valid-lifetime\": 7200,\n"
+"                \"min-preferred-lifetime\": 3600,\n"
+"                \"min-valid-lifetime\": 7200,\n"
 "                \"option-data\": [ ],\n"
 "                \"pd-pools\": [ ],\n"
 "                \"pools\": [\n"
index b633a3edb7201216bbb9fe5ff8daf13f07d661f5..c66ed8e952e998478d56a260ed3ed57653c9b4b7 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2017-2020 Internet Systems Consortium, Inc. ("ISC")
+// Copyright (C) 2017-2022 Internet Systems Consortium, Inc. ("ISC")
 //
 // This Source Code Form is subject to the terms of the Mozilla Public
 // License, v. 2.0. If a copy of the MPL was not distributed with this
@@ -175,14 +175,10 @@ Network::toElement() const {
     if (!valid_.unspecified()) {
         map->set("valid-lifetime",
                  Element::create(static_cast<long long>(valid_.get())));
-        if (valid_.getMin() < valid_.get()) {
-            map->set("min-valid-lifetime",
-                     Element::create(static_cast<long long>(valid_.getMin())));
-        }
-        if (valid_.getMax() > valid_.get()) {
-            map->set("max-valid-lifetime",
-                     Element::create(static_cast<long long>(valid_.getMax())));
-        }
+        map->set("min-valid-lifetime",
+                 Element::create(static_cast<long long>(valid_.getMin())));
+        map->set("max-valid-lifetime",
+                 Element::create(static_cast<long long>(valid_.getMax())));
     }
 
     // Set reservations-global
@@ -352,14 +348,10 @@ Network6::toElement() const {
     if (!preferred_.unspecified()) {
         map->set("preferred-lifetime",
                  Element::create(static_cast<long long>(preferred_.get())));
-        if (preferred_.getMin() < preferred_.get()) {
-            map->set("min-preferred-lifetime",
-                     Element::create(static_cast<long long>(preferred_.getMin())));
-        }
-        if (preferred_.getMax() > preferred_.get()) {
-            map->set("max-preferred-lifetime",
-                     Element::create(static_cast<long long>(preferred_.getMax())));
-        }
+        map->set("min-preferred-lifetime",
+                 Element::create(static_cast<long long>(preferred_.getMin())));
+        map->set("max-preferred-lifetime",
+                 Element::create(static_cast<long long>(preferred_.getMax())));
     }
 
     // Set interface-id
index de56233e4ff512847b34e3648a3084ea7283eaed..a920d2b7cc75deb2fa1c08558489b980e81834dc 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2017-2021 Internet Systems Consortium, Inc. ("ISC")
+// Copyright (C) 2017-2022 Internet Systems Consortium, Inc. ("ISC")
 //
 // This Source Code Form is subject to the terms of the Mozilla Public
 // License, v. 2.0. If a copy of the MPL was not distributed with this
@@ -234,7 +234,9 @@ TEST(CfgSharedNetworks4Test, unparse) {
         "    \"option-data\": [ ],\n"
         "    \"relay\": { \"ip-addresses\": [ ] },\n"
         "    \"subnet4\": [ ],\n"
-        "    \"valid-lifetime\": 100\n"
+        "    \"valid-lifetime\": 100,\n"
+        "    \"min-valid-lifetime\": 100,\n"
+        "    \"max-valid-lifetime\": 100\n"
         "  },\n"
         "  {\n"
         "    \"ddns-send-updates\": false,\n"
index 6a4f6c9bd7b48e6996afbf989af0337938fa20bb..65b25efa6d30245e471aa6af1ef719b17ef41634 100644 (file)
@@ -254,7 +254,11 @@ TEST(CfgSharedNetworks6Test, unparse) {
         "    \"renew-timer\": 100,\n"
         "    \"subnet6\": [ ],\n"
         "    \"preferred-lifetime\": 200,\n"
-        "    \"valid-lifetime\": 300\n,"
+        "    \"min-preferred-lifetime\": 200,\n"
+        "    \"max-preferred-lifetime\": 200,\n"
+        "    \"valid-lifetime\": 300,\n"
+        "    \"min-valid-lifetime\": 300,\n"
+        "    \"max-valid-lifetime\": 300,\n"
         "    \"store-extended-info\": true,\n"
         "    \"cache-max-age\": 80\n"
         "  },\n"
index 16c35f6397198719eed2fbb01a226acacf13d31a..171c887ccb954f122ea0b37fae2504e7a5a73e3d 100644 (file)
@@ -1077,6 +1077,8 @@ TEST(CfgSubnets4Test, unparseSubnet) {
         "    \"rebind-timer\": 2,\n"
         "    \"relay\": { \"ip-addresses\": [ ] },\n"
         "    \"valid-lifetime\": 3,\n"
+        "    \"min-valid-lifetime\": 3,\n"
+        "    \"max-valid-lifetime\": 3,\n"
         "    \"client-class\": \"foo\",\n"
         "    \"4o6-interface\": \"\",\n"
         "    \"4o6-interface-id\": \"\",\n"
@@ -1092,6 +1094,8 @@ TEST(CfgSubnets4Test, unparseSubnet) {
         "    \"rebind-timer\": 2,\n"
         "    \"relay\": { \"ip-addresses\": [ \"10.0.0.1\" ] },\n"
         "    \"valid-lifetime\": 100,\n"
+        "    \"min-valid-lifetime\": 100,\n"
+        "    \"max-valid-lifetime\": 100,\n"
         "    \"4o6-interface\": \"\",\n"
         "    \"4o6-interface-id\": \"\",\n"
         "    \"4o6-subnet\": \"\",\n"
@@ -1170,6 +1174,8 @@ TEST(CfgSubnets4Test, unparsePool) {
         "    \"rebind-timer\": 2,\n"
         "    \"relay\": { \"ip-addresses\": [ ] },\n"
         "    \"valid-lifetime\": 3,\n"
+        "    \"min-valid-lifetime\": 3,\n"
+        "    \"max-valid-lifetime\": 3,\n"
         "    \"4o6-interface\": \"\",\n"
         "    \"4o6-interface-id\": \"\",\n"
         "    \"4o6-subnet\": \"\",\n"
@@ -1401,8 +1407,12 @@ TEST(CfgSubnets4Test, validLifetimeValidation) {
         data::ConstElementPtr value = repr->get("valid-lifetime");
         ASSERT_TRUE(value);
         EXPECT_EQ("100", value->str());
-        EXPECT_FALSE(repr->get("min-valid-lifetime"));
-        EXPECT_FALSE(repr->get("max-valid-lifetime"));
+        data::ConstElementPtr min_value = repr->get("min-valid-lifetime");
+        ASSERT_TRUE(min_value);
+        EXPECT_EQ("100", min_value->str());
+        data::ConstElementPtr max_value = repr->get("max-valid-lifetime");
+        ASSERT_TRUE(max_value);
+        EXPECT_EQ("100", max_value->str());
     }
 
     {
@@ -1421,9 +1431,12 @@ TEST(CfgSubnets4Test, validLifetimeValidation) {
         data::ConstElementPtr value = repr->get("valid-lifetime");
         ASSERT_TRUE(value);
         EXPECT_EQ("100", value->str());
-        // Bound only: forgot it was a bound.
-        EXPECT_FALSE(repr->get("min-valid-lifetime"));
-        EXPECT_FALSE(repr->get("max-valid-lifetime"));
+        data::ConstElementPtr min_value = repr->get("min-valid-lifetime");
+        ASSERT_TRUE(min_value);
+        EXPECT_EQ("100", min_value->str());
+        data::ConstElementPtr max_value = repr->get("max-valid-lifetime");
+        ASSERT_TRUE(max_value);
+        EXPECT_EQ("100", max_value->str());
     }
 
     {
@@ -1442,9 +1455,12 @@ TEST(CfgSubnets4Test, validLifetimeValidation) {
         data::ConstElementPtr value = repr->get("valid-lifetime");
         ASSERT_TRUE(value);
         EXPECT_EQ("100", value->str());
-        // Bound only: forgot it was a bound.
-        EXPECT_FALSE(repr->get("min-valid-lifetime"));
-        EXPECT_FALSE(repr->get("max-valid-lifetime"));
+        data::ConstElementPtr min_value = repr->get("min-valid-lifetime");
+        ASSERT_TRUE(min_value);
+        EXPECT_EQ("100", min_value->str());
+        data::ConstElementPtr max_value = repr->get("max-valid-lifetime");
+        ASSERT_TRUE(max_value);
+        EXPECT_EQ("100", max_value->str());
     }
 
     {
@@ -1468,7 +1484,9 @@ TEST(CfgSubnets4Test, validLifetimeValidation) {
         data::ConstElementPtr min_value = repr->get("min-valid-lifetime");
         ASSERT_TRUE(min_value);
         EXPECT_EQ("100", min_value->str());
-        EXPECT_FALSE(repr->get("max-valid-lifetime"));
+        data::ConstElementPtr max_value = repr->get("max-valid-lifetime");
+        ASSERT_TRUE(max_value);
+        EXPECT_EQ("200", max_value->str());
     }
 
     {
@@ -1489,10 +1507,12 @@ TEST(CfgSubnets4Test, validLifetimeValidation) {
         data::ConstElementPtr value = repr->get("valid-lifetime");
         ASSERT_TRUE(value);
         EXPECT_EQ("100", value->str());
+        data::ConstElementPtr min_value = repr->get("min-valid-lifetime");
+        ASSERT_TRUE(min_value);
+        EXPECT_EQ("100", min_value->str());
         data::ConstElementPtr max_value = repr->get("max-valid-lifetime");
         ASSERT_TRUE(max_value);
         EXPECT_EQ("200", max_value->str());
-        EXPECT_FALSE(repr->get("min-valid-lifetime"));
     }
 
     {
@@ -1558,7 +1578,7 @@ TEST(CfgSubnets4Test, validLifetimeValidation) {
     }
 
     {
-        SCOPED_TRACE("equal bounds are ignored");
+        SCOPED_TRACE("equal bounds are no longer ignored");
         data::ElementPtr copied = data::copy(elems);
         copied->set("min-valid-lifetime", data::Element::create(100));
         copied->set("valid-lifetime", data::Element::create(100));
@@ -1575,8 +1595,12 @@ TEST(CfgSubnets4Test, validLifetimeValidation) {
         data::ConstElementPtr value = repr->get("valid-lifetime");
         ASSERT_TRUE(value);
         EXPECT_EQ("100", value->str());
-        EXPECT_FALSE(repr->get("min-valid-lifetime"));
-        EXPECT_FALSE(repr->get("max-valid-lifetime"));
+        data::ConstElementPtr min_value = repr->get("min-valid-lifetime");
+        ASSERT_TRUE(min_value);
+        EXPECT_EQ("100", min_value->str());
+        data::ConstElementPtr max_value = repr->get("max-valid-lifetime");
+        ASSERT_TRUE(max_value);
+        EXPECT_EQ("100", max_value->str());
     }
 }
 
index efb9111b69c416fe758376c8454fb3d83d5932eb..dde02d496029973a6e8013507296b64eb7cc0ac5 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2014-2021 Internet Systems Consortium, Inc. ("ISC")
+// Copyright (C) 2014-2022 Internet Systems Consortium, Inc. ("ISC")
 //
 // This Source Code Form is subject to the terms of the Mozilla Public
 // License, v. 2.0. If a copy of the MPL was not distributed with this
@@ -678,7 +678,11 @@ TEST(CfgSubnets6Test, unparseSubnet) {
         "    \"rebind-timer\": 2,\n"
         "    \"relay\": { \"ip-addresses\": [ ] },\n"
         "    \"preferred-lifetime\": 3,\n"
+        "    \"min-preferred-lifetime\": 3,\n"
+        "    \"max-preferred-lifetime\": 3,\n"
         "    \"valid-lifetime\": 4,\n"
+        "    \"min-valid-lifetime\": 4,\n"
+        "    \"max-valid-lifetime\": 4,\n"
         "    \"client-class\": \"foo\",\n"
         "    \"pools\": [ ],\n"
         "    \"pd-pools\": [ ],\n"
@@ -692,7 +696,11 @@ TEST(CfgSubnets6Test, unparseSubnet) {
         "    \"rebind-timer\": 2,\n"
         "    \"relay\": { \"ip-addresses\": [ \"2001:db8:ff::2\" ] },\n"
         "    \"preferred-lifetime\": 100,\n"
+        "    \"min-preferred-lifetime\": 100,\n"
+        "    \"max-preferred-lifetime\": 100,\n"
         "    \"valid-lifetime\": 200,\n"
+        "    \"min-valid-lifetime\": 200,\n"
+        "    \"max-valid-lifetime\": 200,\n"
         "    \"user-context\": { },\n"
         "    \"pools\": [ ],\n"
         "    \"pd-pools\": [ ],\n"
@@ -769,7 +777,11 @@ TEST(CfgSubnets6Test, unparsePool) {
         "    \"rebind-timer\": 2,\n"
         "    \"relay\": { \"ip-addresses\": [ ] },\n"
         "    \"preferred-lifetime\": 3,\n"
+        "    \"min-preferred-lifetime\": 3,\n"
+        "    \"max-preferred-lifetime\": 3,\n"
         "    \"valid-lifetime\": 4,\n"
+        "    \"min-valid-lifetime\": 4,\n"
+        "    \"max-valid-lifetime\": 4,\n"
         "    \"pools\": [\n"
         "        {\n"
         "            \"pool\": \"2001:db8:1::100-2001:db8:1::199\",\n"
@@ -822,7 +834,11 @@ TEST(CfgSubnets6Test, unparsePdPool) {
         "    \"rebind-timer\": 2,\n"
         "    \"relay\": { \"ip-addresses\": [ ] },\n"
         "    \"preferred-lifetime\": 3,\n"
+        "    \"min-preferred-lifetime\": 3,\n"
+        "    \"max-preferred-lifetime\": 3,\n"
         "    \"valid-lifetime\": 4,\n"
+        "    \"min-valid-lifetime\": 4,\n"
+        "    \"max-valid-lifetime\": 4,\n"
         "    \"pools\": [ ],\n"
         "    \"pd-pools\": [\n"
         "        {\n"
@@ -1191,8 +1207,12 @@ TEST(CfgSubnets6Test, preferredLifetimeValidation) {
         data::ConstElementPtr value = repr->get("preferred-lifetime");
         ASSERT_TRUE(value);
         EXPECT_EQ("100", value->str());
-        EXPECT_FALSE(repr->get("min-preferred-lifetime"));
-        EXPECT_FALSE(repr->get("max-preferred-lifetime"));
+        data::ConstElementPtr min_value = repr->get("min-preferred-lifetime");
+        ASSERT_TRUE(min_value);
+        EXPECT_EQ("100", min_value->str());
+        data::ConstElementPtr max_value = repr->get("max-preferred-lifetime");
+        ASSERT_TRUE(max_value);
+        EXPECT_EQ("100", max_value->str());
     }
 
     {
@@ -1211,9 +1231,12 @@ TEST(CfgSubnets6Test, preferredLifetimeValidation) {
         data::ConstElementPtr value = repr->get("preferred-lifetime");
         ASSERT_TRUE(value);
         EXPECT_EQ("100", value->str());
-        // Bound only: forgot it was a bound.
-        EXPECT_FALSE(repr->get("min-preferred-lifetime"));
-        EXPECT_FALSE(repr->get("max-preferred-lifetime"));
+        data::ConstElementPtr min_value = repr->get("min-preferred-lifetime");
+        ASSERT_TRUE(min_value);
+        EXPECT_EQ("100", min_value->str());
+        data::ConstElementPtr max_value = repr->get("max-preferred-lifetime");
+        ASSERT_TRUE(max_value);
+        EXPECT_EQ("100", max_value->str());
     }
 
     {
@@ -1232,9 +1255,12 @@ TEST(CfgSubnets6Test, preferredLifetimeValidation) {
         data::ConstElementPtr value = repr->get("preferred-lifetime");
         ASSERT_TRUE(value);
         EXPECT_EQ("100", value->str());
-        // Bound only: forgot it was a bound.
-        EXPECT_FALSE(repr->get("min-preferred-lifetime"));
-        EXPECT_FALSE(repr->get("max-preferred-lifetime"));
+        data::ConstElementPtr min_value = repr->get("min-preferred-lifetime");
+        ASSERT_TRUE(min_value);
+        EXPECT_EQ("100", min_value->str());
+        data::ConstElementPtr max_value = repr->get("max-preferred-lifetime");
+        ASSERT_TRUE(max_value);
+        EXPECT_EQ("100", max_value->str());
     }
 
     {
@@ -1258,7 +1284,9 @@ TEST(CfgSubnets6Test, preferredLifetimeValidation) {
         data::ConstElementPtr min_value = repr->get("min-preferred-lifetime");
         ASSERT_TRUE(min_value);
         EXPECT_EQ("100", min_value->str());
-        EXPECT_FALSE(repr->get("max-preferred-lifetime"));
+        data::ConstElementPtr max_value = repr->get("max-preferred-lifetime");
+        ASSERT_TRUE(max_value);
+        EXPECT_EQ("200", max_value->str());
     }
 
     {
@@ -1279,10 +1307,12 @@ TEST(CfgSubnets6Test, preferredLifetimeValidation) {
         data::ConstElementPtr value = repr->get("preferred-lifetime");
         ASSERT_TRUE(value);
         EXPECT_EQ("100", value->str());
+        data::ConstElementPtr min_value = repr->get("min-preferred-lifetime");
+        ASSERT_TRUE(min_value);
+        EXPECT_EQ("100", min_value->str());
         data::ConstElementPtr max_value = repr->get("max-preferred-lifetime");
         ASSERT_TRUE(max_value);
         EXPECT_EQ("200", max_value->str());
-        EXPECT_FALSE(repr->get("min-preferred-lifetime"));
     }
 
     {
@@ -1348,7 +1378,7 @@ TEST(CfgSubnets6Test, preferredLifetimeValidation) {
     }
 
     {
-        SCOPED_TRACE("equal bounds are ignored");
+        SCOPED_TRACE("equal bounds are no longer ignored");
         data::ElementPtr copied = data::copy(elems);
         copied->set("min-preferred-lifetime", data::Element::create(100));
         copied->set("preferred-lifetime", data::Element::create(100));
@@ -1365,8 +1395,12 @@ TEST(CfgSubnets6Test, preferredLifetimeValidation) {
         data::ConstElementPtr value = repr->get("preferred-lifetime");
         ASSERT_TRUE(value);
         EXPECT_EQ("100", value->str());
-        EXPECT_FALSE(repr->get("min-preferred-lifetime"));
-        EXPECT_FALSE(repr->get("max-preferred-lifetime"));
+        data::ConstElementPtr min_value = repr->get("min-preferred-lifetime");
+        ASSERT_TRUE(min_value);
+        EXPECT_EQ("100", min_value->str());
+        data::ConstElementPtr max_value = repr->get("max-preferred-lifetime");
+        ASSERT_TRUE(max_value);
+        EXPECT_EQ("100", max_value->str());
     }
 }
 
index 85763c5184e3b940f5690ed0ef1c6e6972d11fbd..f9378e70ef1987ef9f91fb901f8243bd882b6204 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2017-2021 Internet Systems Consortium, Inc. ("ISC")
+// Copyright (C) 2017-2022 Internet Systems Consortium, Inc. ("ISC")
 //
 // This Source Code Form is subject to the terms of the Mozilla Public
 // License, v. 2.0. If a copy of the MPL was not distributed with this
@@ -668,7 +668,9 @@ TEST(SharedNetwork4Test, unparse) {
         "        },\n"
         "        \"renew-timer\": 10,\n"
         "        \"subnet\": \"10.0.0.0/8\",\n"
-        "        \"valid-lifetime\": 30\n"
+        "        \"valid-lifetime\": 30,\n"
+        "        \"min-valid-lifetime\": 30,\n"
+        "        \"max-valid-lifetime\": 30\n"
         "      },\n"
         "      {\n"
         "        \"4o6-interface\": \"\",\n"
@@ -683,11 +685,15 @@ TEST(SharedNetwork4Test, unparse) {
         "        },\n"
         "        \"renew-timer\": 10,\n"
         "        \"subnet\": \"192.0.2.0/24\",\n"
-        "        \"valid-lifetime\": 30\n"
+        "        \"valid-lifetime\": 30,\n"
+        "        \"min-valid-lifetime\": 30,\n"
+        "        \"max-valid-lifetime\": 30\n"
         "      }\n"
         "    ],\n"
         "    \"user-context\": { \"comment\": \"bar\", \"foo\": 1 },\n"
-        "    \"valid-lifetime\": 200\n"
+        "    \"valid-lifetime\": 200,\n"
+        "    \"min-valid-lifetime\": 200,\n"
+        "    \"max-valid-lifetime\": 200\n"
         "}\n";
 
     test::runToElementTest<SharedNetwork4>(expected, *network);
@@ -1363,6 +1369,8 @@ TEST(SharedNetwork6Test, unparse) {
         "    \"name\": \"frog\",\n"
         "    \"option-data\": [ ],\n"
         "    \"preferred-lifetime\": 200,\n"
+        "    \"min-preferred-lifetime\": 200,\n"
+        "    \"max-preferred-lifetime\": 200,\n"
         "    \"rapid-commit\": true,\n"
         "    \"rebind-timer\": 150,\n"
         "    \"relay\": {\n"
@@ -1380,13 +1388,17 @@ TEST(SharedNetwork6Test, unparse) {
         "        \"pd-pools\": [ ],\n"
         "        \"pools\": [ ],\n"
         "        \"preferred-lifetime\": 30,\n"
+        "        \"min-preferred-lifetime\": 30,\n"
+        "        \"max-preferred-lifetime\": 30,\n"
         "        \"rebind-timer\": 20,\n"
         "        \"relay\": {\n"
         "           \"ip-addresses\": [ ]\n"
         "        },\n"
         "        \"renew-timer\": 10,\n"
         "        \"subnet\": \"2001:db8:1::/64\",\n"
-        "        \"valid-lifetime\": 40\n"
+        "        \"valid-lifetime\": 40,\n"
+        "        \"min-valid-lifetime\": 40,\n"
+        "        \"max-valid-lifetime\": 40\n"
         "      },\n"
         "      {\n"
         "        \"id\": 2,\n"
@@ -1395,17 +1407,23 @@ TEST(SharedNetwork6Test, unparse) {
         "        \"pd-pools\": [ ],\n"
         "        \"pools\": [ ],\n"
         "        \"preferred-lifetime\": 30,\n"
+        "        \"min-preferred-lifetime\": 30,\n"
+        "        \"max-preferred-lifetime\": 30,\n"
         "        \"rebind-timer\": 20,\n"
         "        \"relay\": {\n"
         "           \"ip-addresses\": [ \"2001:db8:1::8\" ]\n"
         "        },\n"
         "        \"renew-timer\": 10,\n"
         "        \"subnet\": \"3000::/16\",\n"
-        "        \"valid-lifetime\": 40\n"
+        "        \"valid-lifetime\": 40,\n"
+        "        \"min-valid-lifetime\": 40,\n"
+        "        \"max-valid-lifetime\": 40\n"
         "      }\n"
         "    ],\n"
         "    \"user-context\": { \"foo\": \"bar\" },\n"
-        "    \"valid-lifetime\": 300\n"
+        "    \"valid-lifetime\": 300,\n"
+        "    \"min-valid-lifetime\": 300,\n"
+        "    \"max-valid-lifetime\": 300\n"
         "}\n";
 
     test::runToElementTest<SharedNetwork6>(expected, *network);