Skip to content

Commit 545a649

Browse files
authored
[bbr-leader] remove kDomainPrefixUnchanged from DomainPrefixEvent (openthread#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.
1 parent a84fc2e commit 545a649

5 files changed

Lines changed: 18 additions & 43 deletions

File tree

src/core/backbone_router/bbr_leader.cpp

Lines changed: 7 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -112,11 +112,10 @@ const char *Leader::StateToString(State aState)
112112

113113
const char *Leader::DomainPrefixEventToString(DomainPrefixEvent aEvent)
114114
{
115-
#define DomainPrefixEventMapList(_) \
116-
_(kDomainPrefixAdded, "Added") \
117-
_(kDomainPrefixRemoved, "Removed") \
118-
_(kDomainPrefixRefreshed, "Refreshed") \
119-
_(kDomainPrefixUnchanged, "Unchanged")
115+
#define DomainPrefixEventMapList(_) \
116+
_(kDomainPrefixAdded, "Added") \
117+
_(kDomainPrefixRemoved, "Removed") \
118+
_(kDomainPrefixRefreshed, "Refreshed")
120119

121120
DefineEnumStringArray(DomainPrefixEventMapList);
122121

@@ -225,16 +224,13 @@ void Leader::UpdateDomainPrefixConfig(void)
225224
{
226225
VerifyOrExit(HasDomainPrefix());
227226

228-
// Domain Prefix does not exist any more.
229227
mDomainPrefix.Clear();
230228
event = kDomainPrefixRemoved;
231229
}
232-
else if (prefixConfig.GetPrefix() == mDomainPrefix)
233-
{
234-
event = kDomainPrefixUnchanged;
235-
}
236230
else
237231
{
232+
VerifyOrExit(prefixConfig.GetPrefix() != mDomainPrefix);
233+
238234
event = HasDomainPrefix() ? kDomainPrefixRefreshed : kDomainPrefixAdded;
239235
mDomainPrefix = prefixConfig.GetPrefix();
240236
}
@@ -250,12 +246,10 @@ void Leader::UpdateDomainPrefixConfig(void)
250246

251247
#if OPENTHREAD_CONFIG_DUA_ENABLE || (OPENTHREAD_FTD && OPENTHREAD_CONFIG_TMF_PROXY_DUA_ENABLE)
252248
Get<DuaManager>().HandleDomainPrefixUpdate(event);
253-
#else
254-
OT_UNUSED_VARIABLE(event);
255249
#endif
256250

257251
exit:
258-
return;
252+
OT_UNUSED_VARIABLE(event);
259253
}
260254

261255
bool Leader::IsDomainUnicast(const Ip6::Address &aAddress) const

src/core/backbone_router/bbr_leader.hpp

Lines changed: 4 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -76,7 +76,6 @@ enum DomainPrefixEvent : uint8_t
7676
kDomainPrefixAdded = OT_BACKBONE_ROUTER_DOMAIN_PREFIX_ADDED, ///< Domain Prefix Added.
7777
kDomainPrefixRemoved = OT_BACKBONE_ROUTER_DOMAIN_PREFIX_REMOVED, ///< Domain Prefix Removed.
7878
kDomainPrefixRefreshed = OT_BACKBONE_ROUTER_DOMAIN_PREFIX_CHANGED, ///< Domain Prefix Changed.
79-
kDomainPrefixUnchanged, ///< Domain Prefix did not change.
8079
};
8180

8281
/**
@@ -151,10 +150,7 @@ class Leader : public InstanceLocator, private NonCopyable
151150
*
152151
* @retval A pointer to the Domain Prefix or nullptr if there is no Domain Prefix.
153152
*/
154-
const Ip6::Prefix *GetDomainPrefix(void) const
155-
{
156-
return (mDomainPrefix.GetLength() == 0) ? nullptr : &mDomainPrefix;
157-
}
153+
const Ip6::Prefix *GetDomainPrefix(void) const { return HasDomainPrefix() ? &mDomainPrefix : nullptr; }
158154

159155
/**
160156
* Indicates whether or not the Domain Prefix is available in the Thread Network.
@@ -186,15 +182,13 @@ class Leader : public InstanceLocator, private NonCopyable
186182
void LogBackboneRouterPrimary(State, const Config &) const {}
187183
#endif
188184

189-
Config mConfig; ///< Primary Backbone Router information.
190-
Ip6::Prefix mDomainPrefix; ///< Domain Prefix in the Thread network.
185+
Config mConfig;
186+
Ip6::Prefix mDomainPrefix;
191187
};
192188

193189
} // namespace BackboneRouter
194190

195-
/**
196-
* @}
197-
*/
191+
DefineMapEnum(otBackboneRouterDomainPrefixEvent, BackboneRouter::DomainPrefixEvent);
198192

199193
} // namespace ot
200194

src/core/backbone_router/bbr_local.cpp

Lines changed: 3 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -374,10 +374,7 @@ void Local::ApplyNewMeshLocalPrefix(void)
374374

375375
void Local::HandleDomainPrefixUpdate(DomainPrefixEvent aEvent)
376376
{
377-
if (!IsEnabled())
378-
{
379-
ExitNow();
380-
}
377+
VerifyOrExit(IsEnabled());
381378

382379
if (aEvent == kDomainPrefixRemoved || aEvent == kDomainPrefixRefreshed)
383380
{
@@ -390,11 +387,8 @@ void Local::HandleDomainPrefixUpdate(DomainPrefixEvent aEvent)
390387
Get<BackboneTmfAgent>().SubscribeMulticast(mAllDomainBackboneRouters);
391388
}
392389

393-
if (aEvent != kDomainPrefixUnchanged)
394-
{
395-
mDomainPrefixCallback.InvokeIfSet(static_cast<otBackboneRouterDomainPrefixEvent>(aEvent),
396-
Get<Leader>().GetDomainPrefix());
397-
}
390+
mDomainPrefixCallback.InvokeIfSet(static_cast<otBackboneRouterDomainPrefixEvent>(aEvent),
391+
Get<Leader>().GetDomainPrefix());
398392

399393
exit:
400394
return;

src/core/backbone_router/ndproxy_table.cpp

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -127,10 +127,8 @@ void NdProxyTable::Erase(NdProxy &aNdProxy) { aNdProxy.mValid = false; }
127127

128128
void NdProxyTable::HandleDomainPrefixUpdate(DomainPrefixEvent aEvent)
129129
{
130-
if (aEvent == kDomainPrefixAdded || aEvent == kDomainPrefixRemoved || aEvent == kDomainPrefixRefreshed)
131-
{
132-
Clear();
133-
}
130+
OT_UNUSED_VARIABLE(aEvent);
131+
Clear();
134132
}
135133

136134
void NdProxyTable::Clear(void)

src/core/thread/dua_manager.cpp

Lines changed: 2 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -92,12 +92,6 @@ void DuaManager::HandleDomainPrefixUpdate(BackboneRouter::DomainPrefixEvent aEve
9292
#if OPENTHREAD_CONFIG_DUA_ENABLE
9393
switch (aEvent)
9494
{
95-
case BackboneRouter::kDomainPrefixUnchanged:
96-
// In case removed for some reason e.g. the kDuaInvalid response from PBBR forcefully
97-
VerifyOrExit(!Get<ThreadNetif>().HasUnicastAddress(GetDomainUnicastAddress()));
98-
99-
OT_FALL_THROUGH;
100-
10195
case BackboneRouter::kDomainPrefixRefreshed:
10296
case BackboneRouter::kDomainPrefixAdded:
10397
{
@@ -108,7 +102,8 @@ void DuaManager::HandleDomainPrefixUpdate(BackboneRouter::DomainPrefixEvent aEve
108102
mDomainUnicastAddress.GetAddress().SetPrefix(*prefix);
109103
}
110104
break;
111-
default:
105+
106+
case BackboneRouter::kDomainPrefixRemoved:
112107
ExitNow();
113108
}
114109

0 commit comments

Comments
 (0)