From 22b4f3fb769c6482a0352c5c313aa5f11ccbe9a5 Mon Sep 17 00:00:00 2001 From: korbinianbauer <64415847+korbinianbauer@users.noreply.github.com> Date: Thu, 6 Nov 2025 14:12:25 +0100 Subject: [PATCH 1/3] Client_Base - Dont rebroadcast in early (Router) window Removed early rebroadcast check for CLIENT_BASE role. --- src/mesh/RadioInterface.cpp | 5 ----- 1 file changed, 5 deletions(-) diff --git a/src/mesh/RadioInterface.cpp b/src/mesh/RadioInterface.cpp index 3c0da44944d..e8df7f4c835 100644 --- a/src/mesh/RadioInterface.cpp +++ b/src/mesh/RadioInterface.cpp @@ -296,11 +296,6 @@ bool RadioInterface::shouldRebroadcastEarlyLikeRouter(meshtastic_MeshPacket *p) return true; } - // If we are a CLIENT_BASE and the packet is from or to a favorited node, we should rebroadcast early - if (config.device.role == meshtastic_Config_DeviceConfig_Role_CLIENT_BASE) { - return nodeDB->isFromOrToFavoritedNode(*p); - } - return false; } From 259082c9c843c321a22826c1cfb846612bb8cf55 Mon Sep 17 00:00:00 2001 From: korbinianbauer <64415847+korbinianbauer@users.noreply.github.com> Date: Thu, 6 Nov 2025 14:14:06 +0100 Subject: [PATCH 2/3] Client_Base - Clamp rebroadcast to late (Router_Late) window on dupe --- src/mesh/FloodingRouter.cpp | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/mesh/FloodingRouter.cpp b/src/mesh/FloodingRouter.cpp index 032be241b70..a2a0875ed8d 100644 --- a/src/mesh/FloodingRouter.cpp +++ b/src/mesh/FloodingRouter.cpp @@ -124,6 +124,9 @@ void FloodingRouter::perhapsCancelDupe(const meshtastic_MeshPacket *p) if (config.device.role == meshtastic_Config_DeviceConfig_Role_ROUTER_LATE && iface) { iface->clampToLateRebroadcastWindow(getFrom(p), p->id); } + if (config.device.role == meshtastic_Config_DeviceConfig_Role_CLIENT_BASE && iface) { + iface->clampToLateRebroadcastWindow(getFrom(p), p->id); + } } bool FloodingRouter::isRebroadcaster() From 417673238f611a67a81a4f463b07a686ca3d5f42 Mon Sep 17 00:00:00 2001 From: korbinianbauer <64415847+korbinianbauer@users.noreply.github.com> Date: Wed, 10 Dec 2025 11:54:41 +0100 Subject: [PATCH 3/3] Only clamp to Router_Late window if packet from fav'd node --- src/mesh/FloodingRouter.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/mesh/FloodingRouter.cpp b/src/mesh/FloodingRouter.cpp index a2a0875ed8d..bd06812cfc9 100644 --- a/src/mesh/FloodingRouter.cpp +++ b/src/mesh/FloodingRouter.cpp @@ -124,7 +124,7 @@ void FloodingRouter::perhapsCancelDupe(const meshtastic_MeshPacket *p) if (config.device.role == meshtastic_Config_DeviceConfig_Role_ROUTER_LATE && iface) { iface->clampToLateRebroadcastWindow(getFrom(p), p->id); } - if (config.device.role == meshtastic_Config_DeviceConfig_Role_CLIENT_BASE && iface) { + if (config.device.role == meshtastic_Config_DeviceConfig_Role_CLIENT_BASE && iface && nodeDB && nodeDB->isFromOrToFavoritedNode(*p)) { iface->clampToLateRebroadcastWindow(getFrom(p), p->id); } }