mirror of
https://github.com/espressif/openthread.git
synced 2026-08-31 22:39:54 +00:00
[mesh-forwarder] always perform routing lookup (#2452)
This commit is contained in:
@@ -958,21 +958,15 @@ otError MeshForwarder::UpdateIp6Route(Message &aMessage)
|
||||
|
||||
VerifyOrExit(mMeshDest != Mac::kShortAddrInvalid, error = OT_ERROR_DROP);
|
||||
|
||||
if (netif.GetMle().GetNeighbor(mMeshDest) != NULL)
|
||||
{
|
||||
// destination is neighbor
|
||||
mMacDest.mLength = sizeof(mMacDest.mShortAddress);
|
||||
mMacDest.mShortAddress = mMeshDest;
|
||||
}
|
||||
else
|
||||
mMeshSource = netif.GetMac().GetShortAddress();
|
||||
mMacDest.mLength = sizeof(mMacDest.mShortAddress);
|
||||
|
||||
SuccessOrExit(error = netif.GetMle().CheckReachability(mMeshSource, mMeshDest, ip6Header));
|
||||
mMacDest.mShortAddress = netif.GetMle().GetNextHop(mMeshDest);
|
||||
|
||||
if (mMacDest.mShortAddress != mMeshDest)
|
||||
{
|
||||
// destination is not neighbor
|
||||
mMeshSource = netif.GetMac().GetShortAddress();
|
||||
|
||||
SuccessOrExit(error = netif.GetMle().CheckReachability(mMeshSource, mMeshDest, ip6Header));
|
||||
|
||||
mMacDest.mLength = sizeof(mMacDest.mShortAddress);
|
||||
mMacDest.mShortAddress = netif.GetMle().GetNextHop(mMeshDest);
|
||||
mMacSource.mLength = sizeof(mMacSource.mShortAddress);
|
||||
mMacSource.mShortAddress = mMeshSource;
|
||||
mAddMeshHeader = true;
|
||||
|
||||
Reference in New Issue
Block a user