From c87665f0d5607bf23fec31842ac80d15809314ca Mon Sep 17 00:00:00 2001 From: Jonathan Hui Date: Mon, 23 Mar 2020 21:00:40 -0700 Subject: [PATCH] [mesh-forwarder] avoid unnecessary comparisons on ALOC (#4723) --- src/core/thread/mesh_forwarder_ftd.cpp | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) 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