diff options
author | Andrei Pavel <andrei@isc.org> | 2023-05-10 17:49:45 +0200 |
---|---|---|
committer | Andrei Pavel <andrei@isc.org> | 2023-05-16 14:38:17 +0200 |
commit | 2181cef68d6b49d68e4acb8f1c31f0cf978e2c26 (patch) | |
tree | cc5deba98fd2031728026915210536e8fe8dc6ed /src/lib/yang | |
parent | [#2822] add check-for-json-errors-in-doc.sh to CI (diff) | |
download | kea-2181cef68d6b49d68e4acb8f1c31f0cf978e2c26.tar.xz kea-2181cef68d6b49d68e4acb8f1c31f0cf978e2c26.zip |
[#2832] add missing YANG nodes
- allocator
- ddns-ttl-percent
- exclude-first-last-24,
- ignore-dhcp-server-Identifier
- offer-lifetime
- pd-allocator
- read-timeout
- tcp-user-timeout
- write-timeout
Removed obsolete YANG nodes: contact-points, keyspace.
Diffstat (limited to 'src/lib/yang')
-rw-r--r-- | src/lib/yang/translator_class.cc | 2 | ||||
-rw-r--r-- | src/lib/yang/translator_config.cc | 17 | ||||
-rw-r--r-- | src/lib/yang/translator_database.cc | 6 | ||||
-rw-r--r-- | src/lib/yang/translator_shared_network.cc | 8 | ||||
-rw-r--r-- | src/lib/yang/translator_subnet.cc | 8 | ||||
-rw-r--r-- | src/lib/yang/yang_revisions.h | 6 |
6 files changed, 44 insertions, 3 deletions
diff --git a/src/lib/yang/translator_class.cc b/src/lib/yang/translator_class.cc index 7d3ec40189..eff8da89b4 100644 --- a/src/lib/yang/translator_class.cc +++ b/src/lib/yang/translator_class.cc @@ -75,6 +75,7 @@ TranslatorClass::getClassKea(DataNode const& data_node) { if (model_ == KEA_DHCP4_SERVER) { checkAndGetLeaf(result, data_node, "boot-file-name"); checkAndGetLeaf(result, data_node, "next-server"); + checkAndGetLeaf(result, data_node, "offer-lifetime"); checkAndGetLeaf(result, data_node, "server-hostname"); ConstElementPtr defs = getOptionDefList(data_node); @@ -127,6 +128,7 @@ TranslatorClass::setClassKea(string const& xpath, ConstElementPtr elem) { if (model_ == KEA_DHCP4_SERVER) { checkAndSetLeaf(elem, xpath, "boot-file-name", LeafBaseType::String); checkAndSetLeaf(elem, xpath, "next-server", LeafBaseType::String); + checkAndSetLeaf(elem, xpath, "offer-lifetime", LeafBaseType::Uint32); checkAndSetLeaf(elem, xpath, "server-hostname", LeafBaseType::String); ConstElementPtr defs = elem->get("option-def"); diff --git a/src/lib/yang/translator_config.cc b/src/lib/yang/translator_config.cc index 13a29d82bf..c560b526b7 100644 --- a/src/lib/yang/translator_config.cc +++ b/src/lib/yang/translator_config.cc @@ -187,6 +187,8 @@ ElementPtr TranslatorConfig::getServerKeaDhcpCommon(DataNode const& data_node) { ElementPtr result = Element::createMap(); + checkAndGetLeaf(result, data_node, "allocator"); + checkAndGetLeaf(result, data_node, "cache-max-age"); checkAndGetLeaf(result, data_node, "cache-max-age"); checkAndGetLeaf(result, data_node, "cache-threshold"); checkAndGetLeaf(result, data_node, "calculate-tee-times"); @@ -197,6 +199,7 @@ TranslatorConfig::getServerKeaDhcpCommon(DataNode const& data_node) { checkAndGetLeaf(result, data_node, "ddns-qualifying-suffix"); checkAndGetLeaf(result, data_node, "ddns-replace-client-name"); checkAndGetLeaf(result, data_node, "ddns-send-updates"); + checkAndGetLeaf(result, data_node, "ddns-ttl-percent"); checkAndGetLeaf(result, data_node, "ddns-update-on-renew"); checkAndGetLeaf(result, data_node, "ddns-use-conflict-resolution"); checkAndGetLeaf(result, data_node, "decline-probation-period"); @@ -234,6 +237,8 @@ TranslatorConfig::getServerKeaDhcpCommon(DataNode const& data_node) { checkAndGet(result, data_node, "compatibility", [&](DataNode const& node) -> ElementPtr const { ElementPtr compatibility(Element::createMap()); + checkAndGetLeaf(compatibility, node, "exclude-first-last-24"); + checkAndGetLeaf(compatibility, node, "ignore-dhcp-server-identifier"); checkAndGetLeaf(compatibility, node, "ignore-rai-link-selection"); checkAndGetLeaf(compatibility, node, "lenient-option-parsing"); return compatibility; @@ -337,6 +342,7 @@ TranslatorConfig::getServerKeaDhcp4() { checkAndGetLeaf(result, config, "echo-client-id"); checkAndGetLeaf(result, config, "match-client-id"); checkAndGetLeaf(result, config, "next-server"); + checkAndGetLeaf(result, config, "offer-lifetime"); checkAndGetLeaf(result, config, "server-hostname"); // Handle interfaces. @@ -371,6 +377,7 @@ TranslatorConfig::getServerKeaDhcp6() { checkAndGetLeaf(result, config, "mac-sources"); checkAndGetLeaf(result, config, "max-preferred-lifetime"); checkAndGetLeaf(result, config, "min-preferred-lifetime"); + checkAndGetLeaf(result, config, "pd-allocator"); checkAndGetLeaf(result, config, "preferred-lifetime"); checkAndGetLeaf(result, config, "relay-supplied-options"); @@ -486,6 +493,7 @@ TranslatorConfig::setConfigKea6(ConstElementPtr elem) { void TranslatorConfig::setServerKeaDhcpCommon(string const& xpath, ConstElementPtr elem) { + checkAndSetLeaf(elem, xpath, "allocator", LeafBaseType::String); checkAndSetLeaf(elem, xpath, "cache-max-age", LeafBaseType::Uint32); checkAndSetLeaf(elem, xpath, "cache-threshold", LeafBaseType::Dec64); checkAndSetLeaf(elem, xpath, "calculate-tee-times", LeafBaseType::Bool); @@ -495,6 +503,7 @@ TranslatorConfig::setServerKeaDhcpCommon(string const& xpath, checkAndSetLeaf(elem, xpath, "ddns-qualifying-suffix", LeafBaseType::String); checkAndSetLeaf(elem, xpath, "ddns-replace-client-name", LeafBaseType::String); checkAndSetLeaf(elem, xpath, "ddns-send-updates", LeafBaseType::Bool); + checkAndSetLeaf(elem, xpath, "ddns-ttl-percent", LeafBaseType::Dec64); checkAndSetLeaf(elem, xpath, "ddns-update-on-renew", LeafBaseType::Bool); checkAndSetLeaf(elem, xpath, "ddns-use-conflict-resolution", LeafBaseType::Bool); checkAndSetLeaf(elem, xpath, "dhcp4o6-port", LeafBaseType::Uint16); @@ -661,8 +670,15 @@ TranslatorConfig::setServerKeaDhcp4(ConstElementPtr elem) { checkAndSetLeaf(elem, xpath, "echo-client-id", LeafBaseType::Bool); checkAndSetLeaf(elem, xpath, "match-client-id", LeafBaseType::Bool); checkAndSetLeaf(elem, xpath, "next-server", LeafBaseType::String); + checkAndSetLeaf(elem, xpath, "offer-lifetime", LeafBaseType::Uint32); checkAndSetLeaf(elem, xpath, "server-hostname", LeafBaseType::String); + ConstElementPtr compatibility(elem->get("compatibility")); + if (compatibility) { + checkAndSetLeaf(compatibility, xpath + "/compatibility", "exclude-first-last-24", LeafBaseType::Bool); + checkAndSetLeaf(compatibility, xpath + "/compatibility", "ignore-dhcp-server-identifier", LeafBaseType::Bool); + } + ConstElementPtr if_config = elem->get("interfaces-config"); if (if_config) { string const if_cfg_xpath(xpath + "/interfaces-config"); @@ -691,6 +707,7 @@ TranslatorConfig::setServerKeaDhcp6(ConstElementPtr elem) { checkAndSetLeaf(elem, xpath, "data-directory", LeafBaseType::String); checkAndSetLeaf(elem, xpath, "max-preferred-lifetime", LeafBaseType::Uint32); checkAndSetLeaf(elem, xpath, "min-preferred-lifetime", LeafBaseType::Uint32); + checkAndSetLeaf(elem, xpath, "pd-allocator", LeafBaseType::String); checkAndSetLeaf(elem, xpath, "preferred-lifetime", LeafBaseType::Uint32); checkAndSetLeafList(elem, xpath, "mac-sources", LeafBaseType::String); diff --git a/src/lib/yang/translator_database.cc b/src/lib/yang/translator_database.cc index 1e6bb6e4cd..e75c47c735 100644 --- a/src/lib/yang/translator_database.cc +++ b/src/lib/yang/translator_database.cc @@ -66,10 +66,13 @@ TranslatorDatabase::getDatabaseKea(DataNode const& data_node) { checkAndGetLeaf(result, data_node, "password"); checkAndGetLeaf(result, data_node, "persist"); checkAndGetLeaf(result, data_node, "port"); + checkAndGetLeaf(result, data_node, "read-timeout"); checkAndGetLeaf(result, data_node, "readonly"); checkAndGetLeaf(result, data_node, "reconnect-wait-time"); + checkAndGetLeaf(result, data_node, "tcp-user-timeout"); checkAndGetLeaf(result, data_node, "trust-anchor"); checkAndGetLeaf(result, data_node, "user"); + checkAndGetLeaf(result, data_node, "write-timeout"); checkAndGetAndJsonifyLeaf(result, data_node, "user-context"); @@ -118,9 +121,12 @@ TranslatorDatabase::setDatabaseKea(string const& xpath, checkAndSetLeaf(elem, xpath, "persist", LeafBaseType::Bool); checkAndSetLeaf(elem, xpath, "port", LeafBaseType::Uint16); checkAndSetLeaf(elem, xpath, "readonly", LeafBaseType::Bool); + checkAndSetLeaf(elem, xpath, "read-timeout", LeafBaseType::Uint32); checkAndSetLeaf(elem, xpath, "reconnect-wait-time", LeafBaseType::Uint32); + checkAndSetLeaf(elem, xpath, "tcp-user-timeout", LeafBaseType::Uint32); checkAndSetLeaf(elem, xpath, "trust-anchor", LeafBaseType::String); checkAndSetLeaf(elem, xpath, "user", LeafBaseType::String); + checkAndSetLeaf(elem, xpath, "write-timeout", LeafBaseType::Uint32); checkAndSetUserContext(elem, xpath); diff --git a/src/lib/yang/translator_shared_network.cc b/src/lib/yang/translator_shared_network.cc index ad5d121ffc..bc1aa284e0 100644 --- a/src/lib/yang/translator_shared_network.cc +++ b/src/lib/yang/translator_shared_network.cc @@ -67,6 +67,7 @@ TranslatorSharedNetwork::getSharedNetworkKea(DataNode const& data_node, getMandatoryLeaf(result, data_node, "name"); + checkAndGetLeaf(result, data_node, "allocator"); checkAndGetLeaf(result, data_node, "cache-max-age"); checkAndGetLeaf(result, data_node, "cache-threshold"); checkAndGetLeaf(result, data_node, "calculate-tee-times"); @@ -77,6 +78,7 @@ TranslatorSharedNetwork::getSharedNetworkKea(DataNode const& data_node, checkAndGetLeaf(result, data_node, "ddns-qualifying-suffix"); checkAndGetLeaf(result, data_node, "ddns-replace-client-name"); checkAndGetLeaf(result, data_node, "ddns-send-updates"); + checkAndGetLeaf(result, data_node, "ddns-ttl-percent"); checkAndGetLeaf(result, data_node, "ddns-update-on-renew"); checkAndGetLeaf(result, data_node, "ddns-use-conflict-resolution"); checkAndGetLeaf(result, data_node, "hostname-char-replacement"); @@ -119,6 +121,7 @@ TranslatorSharedNetwork::getSharedNetworkKea(DataNode const& data_node, checkAndGetLeaf(result, data_node, "interface-id"); checkAndGetLeaf(result, data_node, "max-preferred-lifetime"); checkAndGetLeaf(result, data_node, "min-preferred-lifetime"); + checkAndGetLeaf(result, data_node, "pd-allocator"); checkAndGetLeaf(result, data_node, "preferred-lifetime"); checkAndGetLeaf(result, data_node, "rapid-commit"); } else if (subsel == "subnet4") { @@ -126,6 +129,7 @@ TranslatorSharedNetwork::getSharedNetworkKea(DataNode const& data_node, checkAndGetLeaf(result, data_node, "boot-file-name"); checkAndGetLeaf(result, data_node, "match-client-id"); checkAndGetLeaf(result, data_node, "next-server"); + checkAndGetLeaf(result, data_node, "offer-lifetime"); checkAndGetLeaf(result, data_node, "server-hostname"); } @@ -158,6 +162,7 @@ TranslatorSharedNetwork::setSharedNetworkKea(string const& xpath, string const& subsel) { // Skip key "name". + checkAndSetLeaf(elem, xpath, "allocator", LeafBaseType::String); checkAndSetLeaf(elem, xpath, "cache-max-age", LeafBaseType::Uint32); checkAndSetLeaf(elem, xpath, "cache-threshold", LeafBaseType::Dec64); checkAndSetLeaf(elem, xpath, "calculate-tee-times", LeafBaseType::Bool); @@ -168,6 +173,7 @@ TranslatorSharedNetwork::setSharedNetworkKea(string const& xpath, checkAndSetLeaf(elem, xpath, "ddns-qualifying-suffix", LeafBaseType::String); checkAndSetLeaf(elem, xpath, "ddns-replace-client-name", LeafBaseType::String); checkAndSetLeaf(elem, xpath, "ddns-send-updates", LeafBaseType::Bool); + checkAndSetLeaf(elem, xpath, "ddns-ttl-percent", LeafBaseType::Dec64); checkAndSetLeaf(elem, xpath, "ddns-update-on-renew", LeafBaseType::Bool); checkAndSetLeaf(elem, xpath, "ddns-use-conflict-resolution", LeafBaseType::Bool); checkAndSetLeaf(elem, xpath, "hostname-char-replacement", LeafBaseType::String); @@ -217,6 +223,7 @@ TranslatorSharedNetwork::setSharedNetworkKea(string const& xpath, checkAndSetLeaf(elem, xpath, "interface-id", LeafBaseType::String); checkAndSetLeaf(elem, xpath, "max-preferred-lifetime", LeafBaseType::Uint32); checkAndSetLeaf(elem, xpath, "min-preferred-lifetime", LeafBaseType::Uint32); + checkAndSetLeaf(elem, xpath, "pd-allocator", LeafBaseType::String); checkAndSetLeaf(elem, xpath, "preferred-lifetime", LeafBaseType::Uint32); checkAndSetLeaf(elem, xpath, "rapid-commit", LeafBaseType::Bool); } else { @@ -224,6 +231,7 @@ TranslatorSharedNetwork::setSharedNetworkKea(string const& xpath, checkAndSetLeaf(elem, xpath, "boot-file-name", LeafBaseType::String); checkAndSetLeaf(elem, xpath, "match-client-id", LeafBaseType::Bool); checkAndSetLeaf(elem, xpath, "next-server", LeafBaseType::String); + checkAndSetLeaf(elem, xpath, "offer-lifetime", LeafBaseType::Uint32); checkAndSetLeaf(elem, xpath, "server-hostname", LeafBaseType::String); } } diff --git a/src/lib/yang/translator_subnet.cc b/src/lib/yang/translator_subnet.cc index ae9c0f654f..15a2e6ae96 100644 --- a/src/lib/yang/translator_subnet.cc +++ b/src/lib/yang/translator_subnet.cc @@ -100,6 +100,7 @@ TranslatorSubnet::getSubnetKea(DataNode const& data_node) { getMandatoryLeaf(result, data_node, "id"); getMandatoryLeaf(result, data_node, "subnet"); + checkAndGetLeaf(result, data_node, "allocator"); checkAndGetLeaf(result, data_node, "cache-max-age"); checkAndGetLeaf(result, data_node, "cache-threshold"); checkAndGetLeaf(result, data_node, "calculate-tee-times"); @@ -110,6 +111,7 @@ TranslatorSubnet::getSubnetKea(DataNode const& data_node) { checkAndGetLeaf(result, data_node, "ddns-qualifying-suffix"); checkAndGetLeaf(result, data_node, "ddns-replace-client-name"); checkAndGetLeaf(result, data_node, "ddns-send-updates"); + checkAndGetLeaf(result, data_node, "ddns-ttl-percent"); checkAndGetLeaf(result, data_node, "ddns-update-on-renew"); checkAndGetLeaf(result, data_node, "ddns-use-conflict-resolution"); checkAndGetLeaf(result, data_node, "hostname-char-replacement"); @@ -157,6 +159,7 @@ TranslatorSubnet::getSubnetKea(DataNode const& data_node) { checkAndGetLeaf(result, data_node, "interface-id"); checkAndGetLeaf(result, data_node, "max-preferred-lifetime"); checkAndGetLeaf(result, data_node, "min-preferred-lifetime"); + checkAndGetLeaf(result, data_node, "pd-allocator"); checkAndGetLeaf(result, data_node, "preferred-lifetime"); checkAndGetLeaf(result, data_node, "rapid-commit"); @@ -169,6 +172,7 @@ TranslatorSubnet::getSubnetKea(DataNode const& data_node) { checkAndGetLeaf(result, data_node, "boot-file-name"); checkAndGetLeaf(result, data_node, "match-client-id"); checkAndGetLeaf(result, data_node, "next-server"); + checkAndGetLeaf(result, data_node, "offer-lifetime"); checkAndGetLeaf(result, data_node, "server-hostname"); checkAndGetDivergingLeaf(result, data_node, "4o6-interface", "subnet-4o6-interface"); @@ -240,6 +244,7 @@ TranslatorSubnet::setSubnetKea(string const& xpath, ConstElementPtr elem) { } setItem(xpath + "/subnet", subnet, LeafBaseType::String); + checkAndSetLeaf(elem, xpath, "allocator", LeafBaseType::String); checkAndSetLeaf(elem, xpath, "cache-max-age", LeafBaseType::Uint32); checkAndSetLeaf(elem, xpath, "cache-threshold", LeafBaseType::Dec64); checkAndSetLeaf(elem, xpath, "calculate-tee-times", LeafBaseType::Bool); @@ -250,6 +255,7 @@ TranslatorSubnet::setSubnetKea(string const& xpath, ConstElementPtr elem) { checkAndSetLeaf(elem, xpath, "ddns-qualifying-suffix", LeafBaseType::String); checkAndSetLeaf(elem, xpath, "ddns-replace-client-name", LeafBaseType::String); checkAndSetLeaf(elem, xpath, "ddns-send-updates", LeafBaseType::Bool); + checkAndSetLeaf(elem, xpath, "ddns-ttl-percent", LeafBaseType::Dec64); checkAndSetLeaf(elem, xpath, "ddns-update-on-renew", LeafBaseType::Bool); checkAndSetLeaf(elem, xpath, "ddns-use-conflict-resolution", LeafBaseType::Bool); checkAndSetLeaf(elem, xpath, "hostname-char-replacement", LeafBaseType::String); @@ -299,6 +305,7 @@ TranslatorSubnet::setSubnetKea(string const& xpath, ConstElementPtr elem) { checkAndSetLeaf(elem, xpath, "interface-id", LeafBaseType::String); checkAndSetLeaf(elem, xpath, "max-preferred-lifetime", LeafBaseType::Uint32); checkAndSetLeaf(elem, xpath, "min-preferred-lifetime", LeafBaseType::Uint32); + checkAndSetLeaf(elem, xpath, "pd-allocator", LeafBaseType::String); checkAndSetLeaf(elem, xpath, "preferred-lifetime", LeafBaseType::Uint32); checkAndSetLeaf(elem, xpath, "rapid-commit", LeafBaseType::Bool); @@ -311,6 +318,7 @@ TranslatorSubnet::setSubnetKea(string const& xpath, ConstElementPtr elem) { checkAndSetLeaf(elem, xpath, "boot-file-name", LeafBaseType::String); checkAndSetLeaf(elem, xpath, "match-client-id", LeafBaseType::Bool); checkAndSetLeaf(elem, xpath, "next-server", LeafBaseType::String); + checkAndSetLeaf(elem, xpath, "offer-lifetime", LeafBaseType::Uint32); checkAndSetLeaf(elem, xpath, "server-hostname", LeafBaseType::String); checkAndSetDivergingLeaf(elem, xpath, "4o6-interface", "subnet-4o6-interface", LeafBaseType::String); diff --git a/src/lib/yang/yang_revisions.h b/src/lib/yang/yang_revisions.h index 36fd06ce3c..ebd9c5a1c5 100644 --- a/src/lib/yang/yang_revisions.h +++ b/src/lib/yang/yang_revisions.h @@ -22,9 +22,9 @@ static const std::unordered_map<std::string, std::string> YANG_REVISIONS = { { "ietf-dhcpv6-options", "2018-09-04" }, { "ietf-dhcpv6-server", "2018-09-04" }, { "kea-types", "2019-08-12" }, - { "kea-dhcp-types", "2022-12-27" }, - { "kea-dhcp4-server", "2022-12-27" }, - { "kea-dhcp6-server", "2022-12-27" }, + { "kea-dhcp-types", "2023-05-31" }, + { "kea-dhcp4-server", "2023-05-31" }, + { "kea-dhcp6-server", "2023-05-31" }, { "kea-ctrl-agent", "2019-08-12" }, { "kea-dhcp-ddns", "2022-07-27" } }; // YANG_REVISIONS |