diff --git a/src/core/thread/mesh_forwarder_ftd.cpp b/src/core/thread/mesh_forwarder_ftd.cpp index 8234fcc5e..6b49ae347 100644 --- a/src/core/thread/mesh_forwarder_ftd.cpp +++ b/src/core/thread/mesh_forwarder_ftd.cpp @@ -391,10 +391,6 @@ otError MeshForwarder::UpdateIp6RouteFtd(Ip6::Header &ip6Header) { mMeshDest = Mle::Mle::Rloc16FromRouterId(mle.GetLeaderId()); } - else if ((aloc16 >= Mle::kAloc16CommissionerStart) && (aloc16 <= Mle::kAloc16CommissionerEnd)) - { - SuccessOrExit(error = MeshCoP::GetBorderAgentRloc(Get(), mMeshDest)); - } else if (aloc16 <= Mle::kAloc16DhcpAgentEnd) { uint16_t agentRloc16; @@ -416,11 +412,14 @@ otError MeshForwarder::UpdateIp6RouteFtd(Ip6::Header &ip6Header) mMeshDest = Mle::Mle::Rloc16FromRouterId(routerId); } } - else if ((aloc16 >= Mle::kAloc16ServiceStart) && (aloc16 <= Mle::kAloc16ServiceEnd)) + else if (aloc16 <= Mle::kAloc16ServiceEnd) { SuccessOrExit(error = GetDestinationRlocByServiceAloc(aloc16, mMeshDest)); } - + else if (aloc16 <= Mle::kAloc16CommissionerEnd) + { + SuccessOrExit(error = MeshCoP::GetBorderAgentRloc(Get(), mMeshDest)); + } else { // TODO: support for Neighbor Discovery Agent ALOC