diff --git a/buildroot b/buildroot index 168601af4..a40d69265 160000 --- a/buildroot +++ b/buildroot @@ -1 +1 @@ -Subproject commit 168601af48567b93bfe0d7bdae3cc8eb266718a5 +Subproject commit a40d69265ea75afd4a1833e1f6400195b12e67a5 diff --git a/doc/ChangeLog.md b/doc/ChangeLog.md index f3352da27..069206a6d 100644 --- a/doc/ChangeLog.md +++ b/doc/ChangeLog.md @@ -17,6 +17,7 @@ All notable changes to the project are documented in this file. - Handle unclean daemon exits better, e.g., `dbus-daemon` crashing and leaving a stale pidfile behind, causing it to refuse to be restarted - Fix occasional blank or garbled `[ OK ]` lines at startup +- Fix MAC address input validation in infix-interfaces YANG. [v26.04.0][] - 2026-04-30 ------------------------- @@ -25,6 +26,7 @@ All notable changes to the project are documented in this file. - Upgrade Linux kernel to 6.18.25 (LTS) - Upgrade Buildroot to 2025.02.13 (LTS) +- Upgrade FRR to 10.5.4 - Add support for per-bridge multicast router port in operational, issue #395 - Add support for static ARP (IPv4) and neighbor cache (IPv6) entries per interface, issue #819. Static entries are installed as permanent kernel diff --git a/patches/frr/10.5.3/0001-Libyang4-compat.patch b/patches/frr/10.5.4/0001-Libyang4-compat.patch similarity index 98% rename from patches/frr/10.5.3/0001-Libyang4-compat.patch rename to patches/frr/10.5.4/0001-Libyang4-compat.patch index 863ab0f78..a7d727b93 100644 --- a/patches/frr/10.5.3/0001-Libyang4-compat.patch +++ b/patches/frr/10.5.4/0001-Libyang4-compat.patch @@ -1,4 +1,4 @@ -From 39ebf709e91a89f59e14ac1d1179df170448d09a Mon Sep 17 00:00:00 2001 +From 72ad44e1e215cded7c8bf3209203b5d1b32e179d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mattias=20Walstr=C3=B6m?= Date: Tue, 27 Jan 2026 22:54:59 +0100 Subject: [PATCH 1/3] Libyang4 compat diff --git a/patches/frr/10.5.3/0002-Failed-without-c-23-this-adds-compatibility-layer.patch b/patches/frr/10.5.4/0002-Failed-without-c-23-this-adds-compatibility-layer.patch similarity index 96% rename from patches/frr/10.5.3/0002-Failed-without-c-23-this-adds-compatibility-layer.patch rename to patches/frr/10.5.4/0002-Failed-without-c-23-this-adds-compatibility-layer.patch index 37b886321..59bd5947f 100644 --- a/patches/frr/10.5.3/0002-Failed-without-c-23-this-adds-compatibility-layer.patch +++ b/patches/frr/10.5.4/0002-Failed-without-c-23-this-adds-compatibility-layer.patch @@ -1,4 +1,4 @@ -From 6f7ff746c4016ea6e6d81c7abad088f5a86f8fbf Mon Sep 17 00:00:00 2001 +From 80634c421c695b191c54d94feda6fb6c32c17eb4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mattias=20Walstr=C3=B6m?= Date: Fri, 30 Jan 2026 13:00:12 +0100 Subject: [PATCH 2/3] Failed without c++ 23, this adds compatibility layer @@ -67,10 +67,10 @@ index 97c7460079..8fe8b10c05 100644 #define zassert assert diff --git a/lib/zlog.c b/lib/zlog.c -index 157f3323cb..7e7b6f0c25 100644 +index eb9b1c236b..b1d23a08d9 100644 --- a/lib/zlog.c +++ b/lib/zlog.c -@@ -789,6 +789,51 @@ void _zlog_assert_failed(const struct xref_assert *xref, const char *extra, ...) +@@ -792,6 +792,51 @@ void _zlog_assert_failed(const struct xref_assert *xref, const char *extra, ...) abort(); } diff --git a/patches/frr/10.5.3/0003-zebra-don-t-resolve-nexthop-via-inactive-connected-r.patch b/patches/frr/10.5.4/0003-zebra-don-t-resolve-nexthop-via-inactive-connected-r.patch similarity index 97% rename from patches/frr/10.5.3/0003-zebra-don-t-resolve-nexthop-via-inactive-connected-r.patch rename to patches/frr/10.5.4/0003-zebra-don-t-resolve-nexthop-via-inactive-connected-r.patch index f68cb70d4..377975657 100644 --- a/patches/frr/10.5.3/0003-zebra-don-t-resolve-nexthop-via-inactive-connected-r.patch +++ b/patches/frr/10.5.4/0003-zebra-don-t-resolve-nexthop-via-inactive-connected-r.patch @@ -1,4 +1,4 @@ -From 868d13c0982a0633e4144d03776358837d92cd8b Mon Sep 17 00:00:00 2001 +From 939a6bd1c38f8fe37236696a862c659b8fa96b07 Mon Sep 17 00:00:00 2001 From: Joachim Wiberg Date: Sun, 22 Feb 2026 10:22:06 +0100 Subject: [PATCH 3/3] zebra: don't resolve nexthop via inactive connected route diff --git a/src/confd/yang/confd/infix-if-bridge.yang b/src/confd/yang/confd/infix-if-bridge.yang index 3e4d32a2a..7c5eff40b 100644 --- a/src/confd/yang/confd/infix-if-bridge.yang +++ b/src/confd/yang/confd/infix-if-bridge.yang @@ -939,8 +939,8 @@ submodule infix-if-bridge { must "not(../ip:ipv4/ip:address or ../ip:ipv6/ip:address)" { error-message "Bridge ports cannot have IP addresses configured."; } - must "not(derived-from-or-self(../if:type, 'infix-ift:wifi')) or ../infix-if:wifi/infix-if:access-point" { - error-message "WiFi interfaces can only be bridge ports when configured as Access Points."; + must "not(derived-from-or-self(../if:type, 'infix-ift:wifi')) or ../infix-if:wifi/infix-if:access-point or ../infix-if:wifi/infix-if:mesh-point" { + error-message "WiFi interfaces can only be bridge ports when configured as Access Points or Mesh Points."; } description "Bridge association and port specific settings."; uses bridge-port-common; diff --git a/src/confd/yang/confd/infix-interfaces.yang b/src/confd/yang/confd/infix-interfaces.yang index 03c9c8a61..f4de3640f 100644 --- a/src/confd/yang/confd/infix-interfaces.yang +++ b/src/confd/yang/confd/infix-interfaces.yang @@ -41,6 +41,11 @@ module infix-interfaces { contact "kernelkit@googlegroups.com"; description "Linux bridge and lag extensions for ietf-interfaces."; + revision 2026-05-13 { + description "Add limitations on custom mac addresses on interfaces, now needs to be a correct unicast mac-address"; + reference "internal"; + } + revision 2026-04-29 { description "Add operational state for multicast router ports per bridge."; reference "internal"; @@ -235,8 +240,12 @@ module infix-interfaces { case static { leaf static { - description "Statically configured interface address on protocol sub-layer, e.g., MAC."; - type yang:phys-address; + description "Statically configured unicast MAC address."; + type yang:mac-address { + pattern '[0-9a-fA-F][02468aAcCeE]:[0-9a-fA-F]{2}:[0-9a-fA-F]{2}:[0-9a-fA-F]{2}:[0-9a-fA-F]{2}:[0-9a-fA-F]{2}' { + error-message "Must be a unicast MAC address (multicast bit must not be set)."; + } + } } } @@ -247,7 +256,7 @@ module infix-interfaces { leaf offset { description "Static offset added to the chassis MAC address."; - type yang:phys-address; + type yang:mac-address; } } } diff --git a/src/confd/yang/confd/infix-interfaces@2026-04-29.yang b/src/confd/yang/confd/infix-interfaces@2026-05-13.yang similarity index 100% rename from src/confd/yang/confd/infix-interfaces@2026-04-29.yang rename to src/confd/yang/confd/infix-interfaces@2026-05-13.yang