[bbr-leader] remove kDomainPrefixUnchanged from DomainPrefixEvent (#13107)

This commit removes the `kDomainPrefixUnchanged` event from the
`DomainPrefixEvent` enum and refactors the related logic in
`BackboneRouter::Leader`. This value was redundant, as the manager
should only report events when an actual change (addition, removal,
or refresh) occurs in the Domain Prefix configuration.
This commit is contained in:
Abtin Keshavarzian
2026-05-14 22:57:51 -07:00
committed by GitHub
parent a84fc2e50b
commit 545a649ecd
5 changed files with 18 additions and 43 deletions
+7 -13
View File
@@ -112,11 +112,10 @@ const char *Leader::StateToString(State aState)
const char *Leader::DomainPrefixEventToString(DomainPrefixEvent aEvent) const char *Leader::DomainPrefixEventToString(DomainPrefixEvent aEvent)
{ {
#define DomainPrefixEventMapList(_) \ #define DomainPrefixEventMapList(_) \
_(kDomainPrefixAdded, "Added") \ _(kDomainPrefixAdded, "Added") \
_(kDomainPrefixRemoved, "Removed") \ _(kDomainPrefixRemoved, "Removed") \
_(kDomainPrefixRefreshed, "Refreshed") \ _(kDomainPrefixRefreshed, "Refreshed")
_(kDomainPrefixUnchanged, "Unchanged")
DefineEnumStringArray(DomainPrefixEventMapList); DefineEnumStringArray(DomainPrefixEventMapList);
@@ -225,16 +224,13 @@ void Leader::UpdateDomainPrefixConfig(void)
{ {
VerifyOrExit(HasDomainPrefix()); VerifyOrExit(HasDomainPrefix());
// Domain Prefix does not exist any more.
mDomainPrefix.Clear(); mDomainPrefix.Clear();
event = kDomainPrefixRemoved; event = kDomainPrefixRemoved;
} }
else if (prefixConfig.GetPrefix() == mDomainPrefix)
{
event = kDomainPrefixUnchanged;
}
else else
{ {
VerifyOrExit(prefixConfig.GetPrefix() != mDomainPrefix);
event = HasDomainPrefix() ? kDomainPrefixRefreshed : kDomainPrefixAdded; event = HasDomainPrefix() ? kDomainPrefixRefreshed : kDomainPrefixAdded;
mDomainPrefix = prefixConfig.GetPrefix(); mDomainPrefix = prefixConfig.GetPrefix();
} }
@@ -250,12 +246,10 @@ void Leader::UpdateDomainPrefixConfig(void)
#if OPENTHREAD_CONFIG_DUA_ENABLE || (OPENTHREAD_FTD && OPENTHREAD_CONFIG_TMF_PROXY_DUA_ENABLE) #if OPENTHREAD_CONFIG_DUA_ENABLE || (OPENTHREAD_FTD && OPENTHREAD_CONFIG_TMF_PROXY_DUA_ENABLE)
Get<DuaManager>().HandleDomainPrefixUpdate(event); Get<DuaManager>().HandleDomainPrefixUpdate(event);
#else
OT_UNUSED_VARIABLE(event);
#endif #endif
exit: exit:
return; OT_UNUSED_VARIABLE(event);
} }
bool Leader::IsDomainUnicast(const Ip6::Address &aAddress) const bool Leader::IsDomainUnicast(const Ip6::Address &aAddress) const
+4 -10
View File
@@ -76,7 +76,6 @@ enum DomainPrefixEvent : uint8_t
kDomainPrefixAdded = OT_BACKBONE_ROUTER_DOMAIN_PREFIX_ADDED, ///< Domain Prefix Added. kDomainPrefixAdded = OT_BACKBONE_ROUTER_DOMAIN_PREFIX_ADDED, ///< Domain Prefix Added.
kDomainPrefixRemoved = OT_BACKBONE_ROUTER_DOMAIN_PREFIX_REMOVED, ///< Domain Prefix Removed. kDomainPrefixRemoved = OT_BACKBONE_ROUTER_DOMAIN_PREFIX_REMOVED, ///< Domain Prefix Removed.
kDomainPrefixRefreshed = OT_BACKBONE_ROUTER_DOMAIN_PREFIX_CHANGED, ///< Domain Prefix Changed. kDomainPrefixRefreshed = OT_BACKBONE_ROUTER_DOMAIN_PREFIX_CHANGED, ///< Domain Prefix Changed.
kDomainPrefixUnchanged, ///< Domain Prefix did not change.
}; };
/** /**
@@ -151,10 +150,7 @@ public:
* *
* @retval A pointer to the Domain Prefix or nullptr if there is no Domain Prefix. * @retval A pointer to the Domain Prefix or nullptr if there is no Domain Prefix.
*/ */
const Ip6::Prefix *GetDomainPrefix(void) const const Ip6::Prefix *GetDomainPrefix(void) const { return HasDomainPrefix() ? &mDomainPrefix : nullptr; }
{
return (mDomainPrefix.GetLength() == 0) ? nullptr : &mDomainPrefix;
}
/** /**
* Indicates whether or not the Domain Prefix is available in the Thread Network. * Indicates whether or not the Domain Prefix is available in the Thread Network.
@@ -186,15 +182,13 @@ private:
void LogBackboneRouterPrimary(State, const Config &) const {} void LogBackboneRouterPrimary(State, const Config &) const {}
#endif #endif
Config mConfig; ///< Primary Backbone Router information. Config mConfig;
Ip6::Prefix mDomainPrefix; ///< Domain Prefix in the Thread network. Ip6::Prefix mDomainPrefix;
}; };
} // namespace BackboneRouter } // namespace BackboneRouter
/** DefineMapEnum(otBackboneRouterDomainPrefixEvent, BackboneRouter::DomainPrefixEvent);
* @}
*/
} // namespace ot } // namespace ot
+3 -9
View File
@@ -374,10 +374,7 @@ exit:
void Local::HandleDomainPrefixUpdate(DomainPrefixEvent aEvent) void Local::HandleDomainPrefixUpdate(DomainPrefixEvent aEvent)
{ {
if (!IsEnabled()) VerifyOrExit(IsEnabled());
{
ExitNow();
}
if (aEvent == kDomainPrefixRemoved || aEvent == kDomainPrefixRefreshed) if (aEvent == kDomainPrefixRemoved || aEvent == kDomainPrefixRefreshed)
{ {
@@ -390,11 +387,8 @@ void Local::HandleDomainPrefixUpdate(DomainPrefixEvent aEvent)
Get<BackboneTmfAgent>().SubscribeMulticast(mAllDomainBackboneRouters); Get<BackboneTmfAgent>().SubscribeMulticast(mAllDomainBackboneRouters);
} }
if (aEvent != kDomainPrefixUnchanged) mDomainPrefixCallback.InvokeIfSet(static_cast<otBackboneRouterDomainPrefixEvent>(aEvent),
{ Get<Leader>().GetDomainPrefix());
mDomainPrefixCallback.InvokeIfSet(static_cast<otBackboneRouterDomainPrefixEvent>(aEvent),
Get<Leader>().GetDomainPrefix());
}
exit: exit:
return; return;
+2 -4
View File
@@ -127,10 +127,8 @@ void NdProxyTable::Erase(NdProxy &aNdProxy) { aNdProxy.mValid = false; }
void NdProxyTable::HandleDomainPrefixUpdate(DomainPrefixEvent aEvent) void NdProxyTable::HandleDomainPrefixUpdate(DomainPrefixEvent aEvent)
{ {
if (aEvent == kDomainPrefixAdded || aEvent == kDomainPrefixRemoved || aEvent == kDomainPrefixRefreshed) OT_UNUSED_VARIABLE(aEvent);
{ Clear();
Clear();
}
} }
void NdProxyTable::Clear(void) void NdProxyTable::Clear(void)
+2 -7
View File
@@ -92,12 +92,6 @@ void DuaManager::HandleDomainPrefixUpdate(BackboneRouter::DomainPrefixEvent aEve
#if OPENTHREAD_CONFIG_DUA_ENABLE #if OPENTHREAD_CONFIG_DUA_ENABLE
switch (aEvent) switch (aEvent)
{ {
case BackboneRouter::kDomainPrefixUnchanged:
// In case removed for some reason e.g. the kDuaInvalid response from PBBR forcefully
VerifyOrExit(!Get<ThreadNetif>().HasUnicastAddress(GetDomainUnicastAddress()));
OT_FALL_THROUGH;
case BackboneRouter::kDomainPrefixRefreshed: case BackboneRouter::kDomainPrefixRefreshed:
case BackboneRouter::kDomainPrefixAdded: case BackboneRouter::kDomainPrefixAdded:
{ {
@@ -108,7 +102,8 @@ void DuaManager::HandleDomainPrefixUpdate(BackboneRouter::DomainPrefixEvent aEve
mDomainUnicastAddress.GetAddress().SetPrefix(*prefix); mDomainUnicastAddress.GetAddress().SetPrefix(*prefix);
} }
break; break;
default:
case BackboneRouter::kDomainPrefixRemoved:
ExitNow(); ExitNow();
} }