From e49b3c9206cd953943270ad44a18fa05884ecb96 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mattias=20Walstr=C3=B6m?= Date: Tue, 16 Dec 2025 07:40:40 +0100 Subject: [PATCH] confd: Adapt YANG models after libyang/netopeer2 upgrade We previously run a draft version of a lot of YANG models, netconf-server,ssh-server and mode. Now they are released with minor changes. infix-meta is an exception, here we had to remove the obsolete marker of the node and value, since this is no longer allowed in libyang. --- board/aarch64/raspberrypi-rpi64/README.md | 2 +- doc/wifi.md | 2 +- src/confd/src/if-wifi.c | 2 +- src/confd/yang/confd.inc | 2 +- src/confd/yang/confd/infix-if-wifi.yang | 7 ++++++- ...2025-05-27.yang => infix-if-wifi@2025-12-10.yang} | 0 src/confd/yang/confd/infix-keystore.yang | 12 ++++++++---- ...025-06-17.yang => infix-keystore@2025-12-10.yang} | 0 src/confd/yang/confd/infix-meta.yang | 6 ++++-- ...ta@2024-10-18.yang => infix-meta@2025-12-10.yang} | 0 src/confd/yang/confd/infix-routing.yang | 2 +- src/confd/yang/confd/infix-services.yang | 6 +++++- ...024-12-03.yang => infix-services@2025-12-10.yang} | 0 13 files changed, 28 insertions(+), 13 deletions(-) rename src/confd/yang/confd/{infix-if-wifi@2025-05-27.yang => infix-if-wifi@2025-12-10.yang} (100%) rename src/confd/yang/confd/{infix-keystore@2025-06-17.yang => infix-keystore@2025-12-10.yang} (100%) rename src/confd/yang/confd/{infix-meta@2024-10-18.yang => infix-meta@2025-12-10.yang} (100%) rename src/confd/yang/confd/{infix-services@2024-12-03.yang => infix-services@2025-12-10.yang} (100%) diff --git a/board/aarch64/raspberrypi-rpi64/README.md b/board/aarch64/raspberrypi-rpi64/README.md index 919c539c..14be9f13 100644 --- a/board/aarch64/raspberrypi-rpi64/README.md +++ b/board/aarch64/raspberrypi-rpi64/README.md @@ -108,7 +108,7 @@ To configure WiFi as a client, first store your WiFi password in the keystore: admin@infix:/> configure admin@infix:/config/> edit keystore symmetric-key mywifi admin@infix:/config/keystore/…/mywifi/> set key-format wifi-preshared-key-format -admin@infix:/config/keystore/…/mywifi/> set cleartext-key YourWiFiPassword +admin@infix:/config/keystore/…/mywifi/> set cleartext-symmetric-key YourWiFiPassword admin@infix:/config/keystore/…/mywifi/> leave ``` diff --git a/doc/wifi.md b/doc/wifi.md index 6b9051e7..1ab89625 100644 --- a/doc/wifi.md +++ b/doc/wifi.md @@ -84,7 +84,7 @@ and 63 characters admin@example:/> configure admin@example:/config/> edit keystore symmetric-key example admin@example:/config/keystore/…/example/> set key-format wifi-preshared-key-format -admin@example:/config/keystore/…/example/> set cleartext-key mysecret +admin@example:/config/keystore/…/example/> set cleartext-symmetric-key mysecret admin@example:/config/keystore/…/example/> leave admin@example:/> ``` diff --git a/src/confd/src/if-wifi.c b/src/confd/src/if-wifi.c index ab934a84..edd40535 100644 --- a/src/confd/src/if-wifi.c +++ b/src/confd/src/if-wifi.c @@ -87,7 +87,7 @@ int wifi_gen(struct lyd_node *dif, struct lyd_node *cif, struct dagger *net) country = lydx_get_cattr(wifi, "country-code"); encryption = lydx_get_cattr(wifi, "encryption"); secret_node = lydx_get_xpathf(cif, "../../keystore/symmetric-keys/symmetric-key[name='%s']", secret_name); - secret = lydx_get_cattr(secret_node, "cleartext-key"); + secret = lydx_get_cattr(secret_node, "cleartext-symmetric-key"); if (!enabled) return wifi_gen_del(cif, net); diff --git a/src/confd/yang/confd.inc b/src/confd/yang/confd.inc index 88ae49d2..4841eb7a 100644 --- a/src/confd/yang/confd.inc +++ b/src/confd/yang/confd.inc @@ -37,7 +37,7 @@ MODULES=( "infix-firewall@2025-04-26.yang" "infix-firewall-services@2025-04-26.yang" "infix-firewall-icmp-types@2025-04-26.yang" - "infix-meta@2024-10-18.yang" + "infix-meta@2025-12-10.yang" "infix-system@2025-10-18.yang" "infix-services@2025-12-10.yang" "ieee802-ethernet-interface@2019-06-21.yang" diff --git a/src/confd/yang/confd/infix-if-wifi.yang b/src/confd/yang/confd/infix-if-wifi.yang index 85a3ba34..e3f5e39b 100644 --- a/src/confd/yang/confd/infix-if-wifi.yang +++ b/src/confd/yang/confd/infix-if-wifi.yang @@ -37,6 +37,11 @@ submodule infix-if-wifi { It supports WiFi client mode and enables comprehensive management of wireless connections, including encryption, country codes, and scanning."; + revision 2025-12-12 { + description "Adapt to new revision of model ietf-keystore."; + reference "internal"; + } + revision 2025-05-27 { description "Initial revision."; reference "internal"; @@ -121,7 +126,7 @@ submodule infix-if-wifi { } leaf secret { - type ks:symmetric-key-ref; + type ks:central-symmetric-key-ref; mandatory true; must "../encryption != 'disabled'" { error-message diff --git a/src/confd/yang/confd/infix-if-wifi@2025-05-27.yang b/src/confd/yang/confd/infix-if-wifi@2025-12-10.yang similarity index 100% rename from src/confd/yang/confd/infix-if-wifi@2025-05-27.yang rename to src/confd/yang/confd/infix-if-wifi@2025-12-10.yang diff --git a/src/confd/yang/confd/infix-keystore.yang b/src/confd/yang/confd/infix-keystore.yang index 97ae2b70..705ccb0a 100644 --- a/src/confd/yang/confd/infix-keystore.yang +++ b/src/confd/yang/confd/infix-keystore.yang @@ -11,6 +11,10 @@ module infix-keystore { import infix-crypto-types { prefix infix-ct; } + + revision 2025-12-10 { + description "Adapt to changes in final version of ietf-keystore"; + } revision 2025-06-17 { description "Add Wi-Fi secrets support"; } @@ -46,14 +50,14 @@ module infix-keystore { wifi-preshared-key-format - WiFi preshared key"; } } - deviation "/ks:keystore/ks:symmetric-keys/ks:symmetric-key/ks:key-type/ks:cleartext-key/ks:cleartext-key" { + deviation "/ks:keystore/ks:symmetric-keys/ks:symmetric-key/ks:key-type/ks:cleartext-symmetric-key" { deviate not-supported; } augment "/ks:keystore/ks:symmetric-keys/ks:symmetric-key/ks:key-type" { - case cleartext-key { - leaf cleartext-key { + case cleartext-symmetric-key { + leaf cleartext-symmetric-key { type string; - must "../../ks:key-format != 'infix-ct:wifi-preshared-key-format' or " + + must "../infix-ks:key-format != 'infix-ct:wifi-preshared-key-format' or " + "(string-length(.) >= 8 and string-length(.) <= 63)" { error-message "WiFi pre-shared key must be 8-63 characters long"; } diff --git a/src/confd/yang/confd/infix-keystore@2025-06-17.yang b/src/confd/yang/confd/infix-keystore@2025-12-10.yang similarity index 100% rename from src/confd/yang/confd/infix-keystore@2025-06-17.yang rename to src/confd/yang/confd/infix-keystore@2025-12-10.yang diff --git a/src/confd/yang/confd/infix-meta.yang b/src/confd/yang/confd/infix-meta.yang index e81b91fd..da7f96b1 100644 --- a/src/confd/yang/confd/infix-meta.yang +++ b/src/confd/yang/confd/infix-meta.yang @@ -12,6 +12,10 @@ module infix-meta { description "Infix metadata."; + revision 2025-12-10 { + description "Remove the obsolete, not allowed in libyang."; + reference "internal"; + } revision 2024-10-18 { description "Mark entire meta container obsolete."; reference "internal"; @@ -29,10 +33,8 @@ module infix-meta { container meta { description "Meta data"; - status obsolete; leaf version { - status obsolete; // Ensure frontends don't show this, used for migration. description "Configuration file format version, automatically generated."; type string; } diff --git a/src/confd/yang/confd/infix-meta@2024-10-18.yang b/src/confd/yang/confd/infix-meta@2025-12-10.yang similarity index 100% rename from src/confd/yang/confd/infix-meta@2024-10-18.yang rename to src/confd/yang/confd/infix-meta@2025-12-10.yang diff --git a/src/confd/yang/confd/infix-routing.yang b/src/confd/yang/confd/infix-routing.yang index c17f7d56..0b56ff04 100644 --- a/src/confd/yang/confd/infix-routing.yang +++ b/src/confd/yang/confd/infix-routing.yang @@ -167,6 +167,7 @@ module infix-routing { base infix-routing-type; description "Static route"; } + deviation "/rt:routing/rt:control-plane-protocols/rt:control-plane-protocol/rt:type" { deviate replace { type identityref { @@ -858,5 +859,4 @@ module infix-routing { This is useful for networks where multiple addresses exist on an interface."; } } - } diff --git a/src/confd/yang/confd/infix-services.yang b/src/confd/yang/confd/infix-services.yang index 86ce2059..a08135ac 100644 --- a/src/confd/yang/confd/infix-services.yang +++ b/src/confd/yang/confd/infix-services.yang @@ -25,6 +25,10 @@ module infix-services { contact "kernelkit@googlegroups.com"; description "Infix services, generic."; + revision 2025-12-10 { + description "Adapt to changes in final version of ietf-keystore"; + reference "internal"; + } revision 2024-12-03 { description "Add support for SSH server configuration"; reference "internal"; @@ -143,7 +147,7 @@ module infix-services { + "derived-from-or-self(deref(.)/../ks:private-key-format, 'infix-ct:rsa-private-key-format'))" { error-message "Only RSA hostkeys are supported."; } - type ks:asymmetric-key-ref; + type ks:central-asymmetric-key-ref; } list listen { diff --git a/src/confd/yang/confd/infix-services@2024-12-03.yang b/src/confd/yang/confd/infix-services@2025-12-10.yang similarity index 100% rename from src/confd/yang/confd/infix-services@2024-12-03.yang rename to src/confd/yang/confd/infix-services@2025-12-10.yang