[mle] don't allow FTD upgrade to Router while Leader is attaching (#11982)

This prevents the leader from allowing FTD devices' address solicit to
succeed while it is in the attaching state.

Upon processing an advertisement from a different partition, the
leader may evaluate it's own partition to be a singleton vs another
partition with routers and choose to start attaching. If a router is
upgraded during that time, the leader is committed to leaving already
and the other devices on that partition may get stranded if the router
is upgraded.

i.e. The router and other devices may now see the partition as
non-singleton, and if it has a higher partition ID than other
partitions, they will be stuck for the duration of the network ID
timeout.
This commit is contained in:
Tom Rebbert
2025-10-01 12:39:33 -07:00
committed by GitHub
parent c8ccc84b3b
commit ceb992bbdc
+1 -1
View File
@@ -3595,7 +3595,7 @@ template <> void Mle::HandleTmf<kUriAddressSolicit>(Coap::Message &aMessage, con
Coap::Message *response = nullptr;
AddrSolicitInfo info;
VerifyOrExit(IsLeader());
VerifyOrExit(IsLeader() && !IsAttaching());
Log(kMessageReceive, kTypeAddressSolicit, aMessageInfo.GetPeerAddr());