diff --git a/test/asf/asfframework.py b/test/asf/asfframework.py
index 0228af8..bd1b45c 100644
--- a/test/asf/asfframework.py
+++ b/test/asf/asfframework.py
@@ -166,6 +166,17 @@
 is_distro_ubuntu2204 = _is_distro_ubuntu2204()
 
 
+def _is_distro_ubuntu2404():
+    with open("/etc/os-release") as f:
+        for line in f.readlines():
+            if "noble" in line:
+                return True
+    return False
+
+
+is_distro_ubuntu2404 = _is_distro_ubuntu2404()
+
+
 def _is_distro_debian11():
     with open("/etc/os-release") as f:
         for line in f.readlines():
@@ -177,14 +188,6 @@
 is_distro_debian11 = _is_distro_debian11()
 
 
-def _is_distro_ubuntu2204():
-    with open("/etc/os-release") as f:
-        for line in f.readlines():
-            if "jammy" in line:
-                return True
-    return False
-
-
 class KeepAliveReporter(object):
     """
     Singleton object which reports test start to parent process
@@ -236,6 +239,8 @@
     FIXME_DEBIAN11 = 5
     # marks suites broken on debug vpp image
     FIXME_VPP_DEBUG = 6
+    # marks suites broken on Ubuntu-24.04
+    FIXME_UBUNTU2404 = 7
 
 
 def create_tag_decorator(e):
@@ -255,6 +260,7 @@
 tag_fixme_ubuntu2204 = create_tag_decorator(TestCaseTag.FIXME_UBUNTU2204)
 tag_fixme_debian11 = create_tag_decorator(TestCaseTag.FIXME_DEBIAN11)
 tag_fixme_vpp_debug = create_tag_decorator(TestCaseTag.FIXME_VPP_DEBUG)
+tag_fixme_ubuntu2404 = create_tag_decorator(TestCaseTag.FIXME_UBUNTU2404)
 
 
 class DummyVpp:
@@ -323,6 +329,12 @@
             cls = unittest.skip("Skipping @tag_fixme_ubuntu2204 tests")(cls)
 
     @classmethod
+    def skip_fixme_ubuntu2404(cls):
+        """if @tag_fixme_ubuntu2404 & is Ubuntu24.04 - mark for skip"""
+        if cls.has_tag(TestCaseTag.FIXME_UBUNTU2404) and is_distro_ubuntu2404 == True:
+            cls = unittest.skip("Skipping @tag_fixme_ubuntu2404 tests")(cls)
+
+    @classmethod
     def instance(cls):
         """Return the instance of this testcase"""
         return cls.test_instance
@@ -1376,6 +1388,13 @@
                 test_title = colorize(f"FIXME with Ubuntu 22.04: {test_title}", RED)
                 test.skip_fixme_ubuntu2204()
 
+            if (
+                test.has_tag(TestCaseTag.FIXME_UBUNTU2404)
+                and is_distro_ubuntu2404 == True
+            ):
+                test_title = colorize(f"FIXME with Ubuntu 24.04: {test_title}", RED)
+                test.skip_fixme_ubuntu2404()
+
             if hasattr(test, "vpp_worker_count"):
                 if test.vpp_worker_count == 0:
                     test_title += " [main thread only]"
