From 2c51c4426457742f75e83cce74afc89254fed56d Mon Sep 17 00:00:00 2001
From: Vjaceslavs Klimovs <vklimovs@gmail.com>
Date: Fri, 9 Oct 2026 16:38:04 -0700
Subject: [PATCH] link: do not assign default MAC to layer-3 TUN interfaces
 (regression by e0122626f)

---
 src/libifstate/link/tun.py | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/src/libifstate/link/tun.py b/src/libifstate/link/tun.py
index 7c86c79..3a264f9 100644
--- a/src/libifstate/link/tun.py
+++ b/src/libifstate/link/tun.py
@@ -46,6 +46,11 @@ class TunLink(Link):
         )
         self.cap_create = bool(link.get("tun_persist"))
 
+    def has_link_address_default(self: object) -> bool:
+        # layer-3 TUN interfaces have no link layer address
+        tun_type = self.settings["tun_type"]
+        return self.attr_value_maps["tun_type"].get(tun_type) != "tun"
+
     def create(self, do_apply, sysctl, excpts, oper="add"):
         if not self.cap_create:
             logger.warning(
-- 
2.55.0

