]> git.ipfire.org Git - thirdparty/kea.git/commitdiff
[#2868] Checkpoint: finished upgradeBinaryAddress6
authorFrancis Dupont <fdupont@isc.org>
Tue, 23 May 2023 22:44:11 +0000 (00:44 +0200)
committerFrancis Dupont <fdupont@isc.org>
Thu, 25 May 2023 21:03:53 +0000 (23:03 +0200)
12 files changed:
doc/sphinx/api-files.txt
doc/sphinx/arm/hooks-lease-query.rst
src/lib/dhcpsrv/dhcpsrv_messages.cc
src/lib/dhcpsrv/dhcpsrv_messages.h
src/lib/dhcpsrv/dhcpsrv_messages.mes
src/lib/dhcpsrv/mysql_lease_mgr.cc
src/lib/dhcpsrv/mysql_lease_mgr.h
src/lib/dhcpsrv/pgsql_lease_mgr.cc
src/lib/dhcpsrv/pgsql_lease_mgr.h
src/share/api/api_files.mk
src/share/api/binary-address6-upgrade.json [new file with mode: 0644]
src/share/api/extended-info4-upgrade.json

index b4b602e3b4793257def9168ed6acf44863e8662c..a23b09d7607282d3e4c023c91a1ed56ec349d9e6 100644 (file)
@@ -1,3 +1,4 @@
+src/share/api/binary-address6-upgrade.json
 src/share/api/build-report.json
 src/share/api/cache-clear.json
 src/share/api/cache-flush.json
index 3a0449884b26e9d66c130227a5ae9c5f1707d609..0d40831bbf4702db81ad45abe00788a48c5a739c 100644 (file)
@@ -607,7 +607,7 @@ Updating Existing Leases in SQL Lease Backends
 Bulk Lease Query required additions to the lease data stored. With SQL lease
 backends, leases created prior to the server being configured for Bulk Lease
 Query will not contain the new data required. In order to populate this data
-it is necessary to run an API command:
+it is necessary to run API commands:
 
 .. _command-extended-info4-upgrade:
 
@@ -619,9 +619,21 @@ For DHCPv4 lease data, the command is:
         "command": "extended-info4-upgrade"
     }
 
+.. _command-binary-address6-upgrade:
+
+For DHCPv6 lease data, there are two commands, for upgrading the binary
+address used for by link address query the command is:
+
+::
+
+    {
+        "command": "binary-address6-upgrade"
+    }
+
 .. _command-extended-info6-upgrade:
 
-For DHCPv6 lease data, the command is (TO BE IMPLEMENTED):
+for extended info used for by relay id and by remote id the command is
+(TO BE IMPLEMENTED):
 
 ::
 
@@ -630,7 +642,7 @@ For DHCPv6 lease data, the command is (TO BE IMPLEMENTED):
     }
 
 
-In either case the response will indicate whether it succeeded or failed
+In all cases the response will indicate whether it succeeded or failed
 and include either the count of leases updated or the nature of the failure:
 
 ::
@@ -641,14 +653,15 @@ and include either the count of leases updated or the nature of the failure:
     }
 
 
-The command's operation is governed by ``extended-info-checks`` parameter
-under the sanity-checks element. Please see :ref:`sanity-checks4` or
-:ref:`sanity-checks6`.
+The operation of extended info command is governed by ``extended-info-checks``
+parameter under the sanity-checks element. Please see :ref:`sanity-checks4`
+or :ref:`sanity-checks6`.
 
 For large numbers of leases this command may take some time to complete.
 
 .. note::
 
    Existing leases must have been created by Kea with ``store-extended-info``
-   enabled in order for the new data to be extracted and stored.
+   enabled in order for the new data from extended info to be extracted
+   and stored.
 
index 7056296e94f55ada92f530832a051f643934eb89..38ee2217e52adfd5fb944fe3be63096cb49b144e 100644 (file)
@@ -192,6 +192,9 @@ extern const isc::log::MessageID DHCPSRV_MYSQL_START_TRANSACTION = "DHCPSRV_MYSQ
 extern const isc::log::MessageID DHCPSRV_MYSQL_TLS_CIPHER = "DHCPSRV_MYSQL_TLS_CIPHER";
 extern const isc::log::MessageID DHCPSRV_MYSQL_UPDATE_ADDR4 = "DHCPSRV_MYSQL_UPDATE_ADDR4";
 extern const isc::log::MessageID DHCPSRV_MYSQL_UPDATE_ADDR6 = "DHCPSRV_MYSQL_UPDATE_ADDR6";
+extern const isc::log::MessageID DHCPSRV_MYSQL_UPGRADE_BINARY_ADDRESS6 = "DHCPSRV_MYSQL_UPGRADE_BINARY_ADDRESS6";
+extern const isc::log::MessageID DHCPSRV_MYSQL_UPGRADE_BINARY_ADDRESS6_ERROR = "DHCPSRV_MYSQL_UPGRADE_BINARY_ADDRESS6_ERROR";
+extern const isc::log::MessageID DHCPSRV_MYSQL_UPGRADE_BINARY_ADDRESS6_PAGE = "DHCPSRV_MYSQL_UPGRADE_BINARY_ADDRESS6_PAGE";
 extern const isc::log::MessageID DHCPSRV_MYSQL_UPGRADE_EXTENDED_INFO4 = "DHCPSRV_MYSQL_UPGRADE_EXTENDED_INFO4";
 extern const isc::log::MessageID DHCPSRV_MYSQL_UPGRADE_EXTENDED_INFO4_ERROR = "DHCPSRV_MYSQL_UPGRADE_EXTENDED_INFO4_ERROR";
 extern const isc::log::MessageID DHCPSRV_MYSQL_UPGRADE_EXTENDED_INFO4_PAGE = "DHCPSRV_MYSQL_UPGRADE_EXTENDED_INFO4_PAGE";
@@ -246,6 +249,9 @@ extern const isc::log::MessageID DHCPSRV_PGSQL_START_TRANSACTION = "DHCPSRV_PGSQ
 extern const isc::log::MessageID DHCPSRV_PGSQL_TLS_SUPPORT = "DHCPSRV_PGSQL_TLS_SUPPORT";
 extern const isc::log::MessageID DHCPSRV_PGSQL_UPDATE_ADDR4 = "DHCPSRV_PGSQL_UPDATE_ADDR4";
 extern const isc::log::MessageID DHCPSRV_PGSQL_UPDATE_ADDR6 = "DHCPSRV_PGSQL_UPDATE_ADDR6";
+extern const isc::log::MessageID DHCPSRV_PGSQL_UPGRADE_BINARY_ADDRESS6 = "DHCPSRV_PGSQL_UPGRADE_BINARY_ADDRESS6";
+extern const isc::log::MessageID DHCPSRV_PGSQL_UPGRADE_BINARY_ADDRESS6_ERROR = "DHCPSRV_PGSQL_UPGRADE_BINARY_ADDRESS6_ERROR";
+extern const isc::log::MessageID DHCPSRV_PGSQL_UPGRADE_BINARY_ADDRESS6_PAGE = "DHCPSRV_PGSQL_UPGRADE_BINARY_ADDRESS6_PAGE";
 extern const isc::log::MessageID DHCPSRV_PGSQL_UPGRADE_EXTENDED_INFO4 = "DHCPSRV_PGSQL_UPGRADE_EXTENDED_INFO4";
 extern const isc::log::MessageID DHCPSRV_PGSQL_UPGRADE_EXTENDED_INFO4_ERROR = "DHCPSRV_PGSQL_UPGRADE_EXTENDED_INFO4_ERROR";
 extern const isc::log::MessageID DHCPSRV_PGSQL_UPGRADE_EXTENDED_INFO4_PAGE = "DHCPSRV_PGSQL_UPGRADE_EXTENDED_INFO4_PAGE";
@@ -463,6 +469,9 @@ const char* values[] = {
     "DHCPSRV_MYSQL_TLS_CIPHER", "TLS cipher: %1",
     "DHCPSRV_MYSQL_UPDATE_ADDR4", "updating IPv4 lease for address %1",
     "DHCPSRV_MYSQL_UPDATE_ADDR6", "updating IPv6 lease for address %1, lease type %2",
+    "DHCPSRV_MYSQL_UPGRADE_BINARY_ADDRESS6", "upgrading IPv6 leases done in %1 pages with %2 updated leases",
+    "DHCPSRV_MYSQL_UPGRADE_BINARY_ADDRESS6_ERROR", "upgrading binary address for IPv6 lease at %1 failed with %2",
+    "DHCPSRV_MYSQL_UPGRADE_BINARY_ADDRESS6_PAGE", "upgrading IPv6 lease binary addresses at page %1 starting at %2 (updated %3)",
     "DHCPSRV_MYSQL_UPGRADE_EXTENDED_INFO4", "upgrading IPv4 leases done in %1 pages with %2 updated leases",
     "DHCPSRV_MYSQL_UPGRADE_EXTENDED_INFO4_ERROR", "upgrading extending info for IPv4 lease at %1 failed with %2",
     "DHCPSRV_MYSQL_UPGRADE_EXTENDED_INFO4_PAGE", "upgrading IPv4 lease extended info at page %1 starting at %2 (updated %3)",
@@ -517,6 +526,9 @@ const char* values[] = {
     "DHCPSRV_PGSQL_TLS_SUPPORT", "Attempt to configure TLS: %1",
     "DHCPSRV_PGSQL_UPDATE_ADDR4", "updating IPv4 lease for address %1",
     "DHCPSRV_PGSQL_UPDATE_ADDR6", "updating IPv6 lease for address %1, lease type %2",
+    "DHCPSRV_PGSQL_UPGRADE_BINARY_ADDRESS6", "upgrading IPv6 leases done in %1 pages with %2 updated leases",
+    "DHCPSRV_PGSQL_UPGRADE_BINARY_ADDRESS6_ERROR", "upgrading binary address for IPv6 lease at %1 failed with %2",
+    "DHCPSRV_PGSQL_UPGRADE_BINARY_ADDRESS6_PAGE", "upgrading IPv6 lease binary addresses at page %1 starting at %2 (updated %3)",
     "DHCPSRV_PGSQL_UPGRADE_EXTENDED_INFO4", "upgrading IPv4 leases done in %1 pages with %2 updated leases",
     "DHCPSRV_PGSQL_UPGRADE_EXTENDED_INFO4_ERROR", "upgrading extending info for IPv4 lease at %1 failed with %2",
     "DHCPSRV_PGSQL_UPGRADE_EXTENDED_INFO4_PAGE", "upgrading IPv4 lease extended info at page %1 starting at %2 (updated %3)",
index 39c56744b260d27dee49f4fea3e7d5349a26ecff..5640310c4f237a32fe130d1fe7bd2920e2de1b88 100644 (file)
@@ -193,6 +193,9 @@ extern const isc::log::MessageID DHCPSRV_MYSQL_START_TRANSACTION;
 extern const isc::log::MessageID DHCPSRV_MYSQL_TLS_CIPHER;
 extern const isc::log::MessageID DHCPSRV_MYSQL_UPDATE_ADDR4;
 extern const isc::log::MessageID DHCPSRV_MYSQL_UPDATE_ADDR6;
+extern const isc::log::MessageID DHCPSRV_MYSQL_UPGRADE_BINARY_ADDRESS6;
+extern const isc::log::MessageID DHCPSRV_MYSQL_UPGRADE_BINARY_ADDRESS6_ERROR;
+extern const isc::log::MessageID DHCPSRV_MYSQL_UPGRADE_BINARY_ADDRESS6_PAGE;
 extern const isc::log::MessageID DHCPSRV_MYSQL_UPGRADE_EXTENDED_INFO4;
 extern const isc::log::MessageID DHCPSRV_MYSQL_UPGRADE_EXTENDED_INFO4_ERROR;
 extern const isc::log::MessageID DHCPSRV_MYSQL_UPGRADE_EXTENDED_INFO4_PAGE;
@@ -247,6 +250,9 @@ extern const isc::log::MessageID DHCPSRV_PGSQL_START_TRANSACTION;
 extern const isc::log::MessageID DHCPSRV_PGSQL_TLS_SUPPORT;
 extern const isc::log::MessageID DHCPSRV_PGSQL_UPDATE_ADDR4;
 extern const isc::log::MessageID DHCPSRV_PGSQL_UPDATE_ADDR6;
+extern const isc::log::MessageID DHCPSRV_PGSQL_UPGRADE_BINARY_ADDRESS6;
+extern const isc::log::MessageID DHCPSRV_PGSQL_UPGRADE_BINARY_ADDRESS6_ERROR;
+extern const isc::log::MessageID DHCPSRV_PGSQL_UPGRADE_BINARY_ADDRESS6_PAGE;
 extern const isc::log::MessageID DHCPSRV_PGSQL_UPGRADE_EXTENDED_INFO4;
 extern const isc::log::MessageID DHCPSRV_PGSQL_UPGRADE_EXTENDED_INFO4_ERROR;
 extern const isc::log::MessageID DHCPSRV_PGSQL_UPGRADE_EXTENDED_INFO4_PAGE;
index 9037820ab95e1f6feac68a0b03a3427094d0869c..ade253aed9f6c6cf5b2ec4dc7093d89a1484596f 100644 (file)
@@ -976,6 +976,19 @@ lease from the MySQL database for the specified address.
 A debug message issued when the server is attempting to update IPv6
 lease from the MySQL database for the specified address.
 
+% DHCPSRV_MYSQL_UPGRADE_BINARY_ADDRESS6 upgrading IPv6 leases done in %1 pages with %2 updated leases
+The server upgraded binary addresses. The number of pages and the
+final count of updated leases are displayed.
+
+% DHCPSRV_MYSQL_UPGRADE_BINARY_ADDRESS6_ERROR upgrading binary address for IPv6 lease at %1 failed with %2
+A debug message issued when the server failed to upgrade a binary address.
+The address of the lease and the error message are displayed.
+
+% DHCPSRV_MYSQL_UPGRADE_BINARY_ADDRESS6_PAGE upgrading IPv6 lease binary addresses at page %1 starting at %2 (updated %3)
+A debug message issued when the server upgrades IPv6 lease binary addresses.
+The page number and started address, and the count of already updated leases
+are displayed.
+
 % DHCPSRV_MYSQL_UPGRADE_EXTENDED_INFO4 upgrading IPv4 leases done in %1 pages with %2 updated leases
 The server upgraded extended info. The number of pages and the final count of
 updated leases are displayed.
@@ -1234,6 +1247,19 @@ lease from the PostgreSQL database for the specified address.
 A debug message issued when the server is attempting to update IPv6
 lease from the PostgreSQL database for the specified address.
 
+% DHCPSRV_PGSQL_UPGRADE_BINARY_ADDRESS6 upgrading IPv6 leases done in %1 pages with %2 updated leases
+The server upgraded binary addresses. The number of pages and the
+final count of updated leases are displayed.
+
+% DHCPSRV_PGSQL_UPGRADE_BINARY_ADDRESS6_ERROR upgrading binary address for IPv6 lease at %1 failed with %2
+A debug message issued when the server failed to upgrade a binary address.
+The address of the lease and the error message are displayed.
+
+% DHCPSRV_PGSQL_UPGRADE_BINARY_ADDRESS6_PAGE upgrading IPv6 lease binary addresses at page %1 starting at %2 (updated %3)
+A debug message issued when the server upgrades IPv6 lease binary addresses.
+The page number and started address, and the count of already updated leases
+are displayed.
+
 % DHCPSRV_PGSQL_UPGRADE_EXTENDED_INFO4 upgrading IPv4 leases done in %1 pages with %2 updated leases
 The server upgraded extended info. The number of pages and the final count of
 updated leases are displayed.
index 7ccd3871dfdf8f1c639555d67ea6f59b17690185..ad25c8f44dd521b95b1b317f5a0efe2825adb8be 100644 (file)
@@ -4038,6 +4038,84 @@ MySqlLeaseMgr::getLeases6ByLink(const IOAddress& /* link_addr */,
     isc_throw(NotImplemented, "MySqlLeaseMgr::getLeases6ByLink not implemented");
 }
 
+size_t
+MySqlLeaseMgr::upgradeBinaryAddress6(const LeasePageSize& page_size) {
+    auto check = CfgMgr::instance().getCurrentCfg()->
+        getConsistency()->getExtendedInfoSanityCheck();
+
+    size_t pages = 0;
+    size_t updated = 0;
+    IOAddress start_addr = IOAddress::IPV6_ZERO_ADDRESS();
+    for (;;) {
+        LOG_DEBUG(dhcpsrv_logger, DHCPSRV_DBG_TRACE_DETAIL,
+                  DHCPSRV_MYSQL_UPGRADE_BINARY_ADDRESS6_PAGE)
+            .arg(pages)
+            .arg(start_addr.toText())
+            .arg(updated);
+
+        // Prepare WHERE clause.
+        MYSQL_BIND inbind[2];
+        memset(inbind, 0, sizeof(inbind));
+
+        // Bind start address.
+        std::string start_addr_str = "0";
+        if (!start_addr.isV6Zero()) {
+            start_addr_str = start_addr.toText();
+        }
+        unsigned long start_addr_size = start_addr_str.size();
+        inbind[0].buffer_type = MYSQL_TYPE_STRING;
+        inbind[0].buffer = const_cast<char*>(start_addr_str.c_str());
+        inbind[0].buffer_length = start_addr_size;
+        inbind[0].length = &start_addr_size;
+
+        // Bind page size value.
+        uint32_t ps = static_cast<uint32_t>(page_size.page_size_);
+        inbind[1].buffer_type = MYSQL_TYPE_LONG;
+        inbind[1].buffer = reinterpret_cast<char*>(&ps);
+        inbind[1].is_unsigned = MLM_TRUE;
+
+        Lease6Collection leases;
+
+        // Get a context.
+        {
+            MySqlLeaseContextAlloc get_context(*this);
+            MySqlLeaseContextPtr ctx = get_context.ctx_;
+
+            getLeaseCollection(ctx, GET_LEASE6_BINADDR_PAGE, inbind, leases);
+        }
+
+        if (leases.empty()) {
+            // Done.
+            break;
+        }
+
+        ++pages;
+        start_addr = leases.back()->addr_;
+        for (auto lease : leases) {
+            try {
+                updateLease6(lease);
+                ++updated;
+            } catch (const NoSuchLease&) {
+                // The lease was modified in parallel:
+                // as its extended info was processed just ignore.
+                continue;
+            } catch (const std::exception& ex) {
+                // Something when wrong, for instance extract failed.
+                LOG_DEBUG(dhcpsrv_logger, DHCPSRV_DBG_TRACE,
+                          DHCPSRV_MYSQL_UPGRADE_BINARY_ADDRESS6_ERROR)
+                    .arg(lease->addr_.toText())
+                    .arg(ex.what());
+            }
+        }
+    }
+
+    LOG_INFO(dhcpsrv_logger, DHCPSRV_MYSQL_UPGRADE_BINARY_ADDRESS6)
+        .arg(pages)
+        .arg(updated);
+
+    return (updated);
+}
+
 size_t
 MySqlLeaseMgr::buildExtendedInfoTables6(bool /* update */, bool /* current */) {
     isc_throw(isc::NotImplemented,
index b81f651220ddbaf09583d571b0e72dbf7555daf7..a08d1909d3f6ef5e551e09ee6fd48a9b5b505241 100644 (file)
@@ -1135,6 +1135,17 @@ private:
     /// @return The number of updates in the database.
     virtual size_t upgradeExtendedInfo4(const LeasePageSize& page_size) override;
 
+    /// @brief Upgrade binary address (v6).
+    ///
+    /// On SQL backends for all leases with null binary address set this
+    /// new column. Memfile uses IOAddress objets so does not need it.
+    /// This function implements the new BLQ hook command named
+    /// "binary-address6-upgrade".
+    ///
+    /// @param page_size The page size used for retrieval.
+    /// @return The number of updates in the database.
+    virtual size_t upgradeBinaryAddress6(const LeasePageSize& page_size) override;
+
     /// @brief Build extended info v6 tables.
     ///
     /// @param update Update extended info in database.
index 9db98c442f685a9634aa286d390f9d81e192d6c2..e57ceac796c3a1bd37eb54199491d9d373e37f19 100644 (file)
@@ -3166,6 +3166,78 @@ PgSqlLeaseMgr::getLeases6ByLink(const IOAddress& /* link_addr */,
     isc_throw(NotImplemented, "PgSqlLeaseMgr::getLeases6ByLink not implemented");
 }
 
+size_t
+PgSqlLeaseMgr::upgradeBinaryAddress6(const LeasePageSize& page_size) {
+    auto check = CfgMgr::instance().getCurrentCfg()->
+        getConsistency()->getExtendedInfoSanityCheck();
+
+    size_t pages = 0;
+    size_t updated = 0;
+    IOAddress start_addr = IOAddress::IPV6_ZERO_ADDRESS();
+    for (;;) {
+        LOG_DEBUG(dhcpsrv_logger, DHCPSRV_DBG_TRACE_DETAIL,
+                  DHCPSRV_PGSQL_UPGRADE_BINARY_ADDRESS6_PAGE)
+            .arg(pages)
+            .arg(start_addr.toText())
+            .arg(updated);
+
+        // Prepare WHERE clause.
+        PsqlBindArray bind_array;
+
+        // Bind start address.
+        std::string start_addr_data = "0";
+        if (!start_addr.isV6Zero()) {
+            start_addr_data = start_addr.toText();
+        }
+        bind_array.add(start_addr_data);
+
+        // Bind page size value.
+        std::string page_size_data =
+            boost::lexical_cast<std::string>(page_size.page_size_);
+        bind_array.add(page_size_data);
+
+        Lease6Collection leases;
+
+        // Get a context.
+        {
+            PgSqlLeaseContextAlloc get_context(*this);
+            PgSqlLeaseContextPtr ctx = get_context.ctx_;
+
+            getLeaseCollection(ctx, GET_LEASE6_BINADDR_PAGE, bind_array, leases);
+        }
+
+        if (leases.empty()) {
+            // Done.
+            break;
+        }
+
+        ++pages;
+        start_addr = leases.back()->addr_;
+        for (auto lease : leases) {
+            try {
+                updateLease6(lease);
+                ++updated;
+            } catch (const NoSuchLease&) {
+                // The lease was modified in parallel:
+                // as its extended info was processed just ignore.
+                continue;
+            } catch (const std::exception& ex) {
+                // Something when wrong, for instance extract failed.
+                LOG_DEBUG(dhcpsrv_logger, DHCPSRV_DBG_TRACE,
+                          DHCPSRV_PGSQL_UPGRADE_BINARY_ADDRESS6_ERROR)
+                    .arg(lease->addr_.toText())
+                    .arg(ex.what());
+            }
+        }
+    }
+
+    LOG_INFO(dhcpsrv_logger, DHCPSRV_PGSQL_UPGRADE_BINARY_ADDRESS6)
+        .arg(pages)
+        .arg(updated);
+
+    return (updated);
+}
+
 size_t
 PgSqlLeaseMgr::buildExtendedInfoTables6(bool /* update */, bool /* current */) {
     isc_throw(isc::NotImplemented,
index 09e1ced55408f8b22c49080ea0ca9a61843dd84d..c3369540ba5039fb405e36127ddd8a9f87b59a03 100644 (file)
@@ -1089,6 +1089,17 @@ private:
     /// @return The number of updates in the database.
     virtual size_t upgradeExtendedInfo4(const LeasePageSize& page_size) override;
 
+    /// @brief Upgrade binary address (v6).
+    ///
+    /// On SQL backends for all leases with null binary address set this
+    /// new column. Memfile uses IOAddress objets so does not need it.
+    /// This function implements the new BLQ hook command named
+    /// "binary-address6-upgrade".
+    ///
+    /// @param page_size The page size used for retrieval.
+    /// @return The number of updates in the database.
+    virtual size_t upgradeBinaryAddress6(const LeasePageSize& page_size) override;
+
     /// @brief Build extended info v6 tables.
     ///
     /// @param update Update extended info in database.
index f10286bdb0ed0eda0233bcff1d189a31f63b201c..e78c47b63ab8956104da1f96ee2280427afd285f 100644 (file)
@@ -1,3 +1,4 @@
+api_files += $(top_srcdir)/src/share/api/binary-address6-upgrade.json
 api_files += $(top_srcdir)/src/share/api/build-report.json
 api_files += $(top_srcdir)/src/share/api/cache-clear.json
 api_files += $(top_srcdir)/src/share/api/cache-flush.json
diff --git a/src/share/api/binary-address6-upgrade.json b/src/share/api/binary-address6-upgrade.json
new file mode 100644 (file)
index 0000000..6a2247d
--- /dev/null
@@ -0,0 +1,30 @@
+{
+    "access": "write",
+    "avail": "2.3.8",
+    "brief": [
+        "This command fills the binary address column for all IPv6 leases where it is NULL in the SQL lease database."
+    ],
+    "cmd-syntax": [
+        "{",
+        "    \"command\": \"binary-address6-upgrade\"",
+        "    }",
+        "}"
+    ],
+    "description": "See <xref linkend=\"command-binary-address6-upgrade\"/>",
+    "hook": "lease_query",
+    "name": "binary-address6-upgrade",
+    "resp-comment": [
+        "This command should be used when some old IPv6 leases are present in the lease database using a SQL backend."
+    ],
+    "resp-syntax": [
+        "{",
+        "  \"arguments\": {",
+        "  },",
+        "  \"result\": 0,",
+        "  \"text\": \"to be done\"",
+        "}"
+    ],
+    "support": [
+        "kea-dhcp6"
+    ]
+}
index fdac0c56816c1636384a1342de9a1f57929b4802..4205628a6d9cff8d425d1b190ecbd389ad009ecb 100644 (file)
@@ -14,7 +14,7 @@
     "hook": "lease_query",
     "name": "extended-info4-upgrade",
     "resp-comment": [
-        "This command should be used when some old leases are present in the lease database using a SQL backend."
+        "This command should be used when some old IPv4 leases are present in the lease database using a SQL backend."
     ],
     "resp-syntax": [
         "{",
@@ -25,6 +25,6 @@
         "}"
     ],
     "support": [
-        "kea-dhcp6"
+        "kea-dhcp4"
     ]
 }