[border-router] BrUlaPrefix not persisted when cli prefix add <prefix> or otBorderRouterAddOnMeshPrefix() invoked #11091
Replies: 4 comments
-
Could you elaborate why it is important to keep the same Also, could you clarify how you'd operate to replace the BR? Are these the steps you'd expect?
|
Beta Was this translation helpful? Give feedback.
-
Thanks, @kangyaolei.
This is not the desired or intended behavior. Let me provide a short overview of the APIs and their intended behavior:
I am not sure about this use case. If a BR is removed and a new BR is introduced, it is expected to choose its own random OMR prefix and other prefixes, the same way it will use its own (randomly picked) MAC extended address. So the expectation that it would mimic and behave exactly like the removed BR may not be valid or helpful. In general, we can have multiple BRs within a Thread mesh network; if one goes offline, another can take over (e.g., publish its OMR in Network Data). If you still want a way to set a specific |
Beta Was this translation helpful? Give feedback.
-
draft-ietf-snac-simple-06 Section 5.2.2 specifies the behavior for selecting a BR ULA prefix:
|
Beta Was this translation helpful? Give feedback.
-
Thanks for the rapid response and explanation! The general consideration is: When TBR replacement happens, the topology will be big, like 1 TBR + 16 TMEs + 100 EDs. It should be much easier for the user of TBR (like a Thread Network manager) in ethernet to access the 100 EDs with the original information, including OMR addresses. We will have further internal discussion on it. Thanks again for your attention ~ |
Beta Was this translation helpful? Give feedback.
-
Describe the bug A clear and concise description of what the bug is.
Error RoutingManager::LoadOrGenerateRandomBrUlaPrefix(void)
will be invoked to load or generate theBrUlaPrefix
(used asOMR prefix
as my observation). If theBrUlaPrefix
is a newly generated one, it will be persisted. It is fine.prefix add <prefix>
or invokeotError otBorderRouterAddOnMeshPrefix(otInstance *aInstance, const otBorderRouterConfig *aConfig)
in code to add/updateBrUlaPrefix
, theBrUlaPrefix
will not be persisted.Dataset
, but also about theBrUlaPrefix
(or in other words, theOMR prefix
). TheBrUlaPrefix
should be persisted when added/updated, so that it will be loaded to guarantee the new TBR to hold the exactly same Thread Network to the old one.To Reproduce Information to reproduce the behavior, including:
BrUlaPrefix
withprefix
.BrUlaPrefix
withprefix add <prefix>
, you can see the newly input prefix is valid.Expected behavior A clear and concise description of what you expected to happen.
prefix add <prefix>
or invokeotError otBorderRouterAddOnMeshPrefix(otInstance *aInstance, const otBorderRouterConfig *aConfig)
in code to add/updateBrUlaPrefix
, theBrUlaPrefix
shoule be persisted.Console/log output If applicable, add console/log output to help explain your problem.
Additional context Add any other context about the problem here.
Beta Was this translation helpful? Give feedback.
All reactions