From 3118ab70ddcf8dc26b4d4575ef78c20890c47131 Mon Sep 17 00:00:00 2001 From: BYGX-wcr Date: Thu, 9 Jul 2026 17:51:13 +0000 Subject: [PATCH] hamgrd: ignore DPU HA set/scope state deletion messages get_dpu_ha_set_state and get_dpu_ha_scope_state now return None when the incoming DASH_HA_SET_STATE / DASH_HA_SCOPE_STATE message is a KeyOperation::Del, so deletion notifications are ignored instead of being treated as (empty) state updates. Signed-off-by: BYGX-wcr --- crates/hamgrd/src/actors/ha_scope/base.rs | 5 +++++ crates/hamgrd/src/actors/ha_set.rs | 5 +++++ 2 files changed, 10 insertions(+) diff --git a/crates/hamgrd/src/actors/ha_scope/base.rs b/crates/hamgrd/src/actors/ha_scope/base.rs index 7864910..082bfca 100644 --- a/crates/hamgrd/src/actors/ha_scope/base.rs +++ b/crates/hamgrd/src/actors/ha_scope/base.rs @@ -160,6 +160,11 @@ impl HaScopeBase { } }; + if kfv.operation == KeyOperation::Del { + debug!("Ignoring DASH_HA_SCOPE_STATE deletion for key={}", kfv.key); + return None; + } + match swss_serde::from_field_values(&kfv.field_values) { Ok(state) => Some(state), Err(e) => { diff --git a/crates/hamgrd/src/actors/ha_set.rs b/crates/hamgrd/src/actors/ha_set.rs index de71063..969d9bc 100644 --- a/crates/hamgrd/src/actors/ha_set.rs +++ b/crates/hamgrd/src/actors/ha_set.rs @@ -157,6 +157,11 @@ impl HaSetActor { } }; + if kfv.operation == KeyOperation::Del { + debug!("Ignoring DASH_HA_SET_STATE deletion for key={}", kfv.key); + return None; + } + match swss_serde::from_field_values(&kfv.field_values) { Ok(state) => Some((kfv.key, state)), Err(e) => {