diff --git a/src/internet/model/icmpv6-l4-protocol.cc b/src/internet/model/icmpv6-l4-protocol.cc index 852cb5559..66d0eb65e 100644 --- a/src/internet/model/icmpv6-l4-protocol.cc +++ b/src/internet/model/icmpv6-l4-protocol.cc @@ -1234,10 +1234,20 @@ bool Icmpv6L4Protocol::Lookup (Ipv6Address dst, Ptr device, PtrLookup (dst); - if (entry && !(entry->IsIncomplete() || entry->IsProbe())) + if (entry) { - *hardwareDestination = entry->GetMacAddress (); - return true; + if (entry->IsReachable () || entry->IsDelay ()) + { + *hardwareDestination = entry->GetMacAddress (); + return true; + } + else if (entry->IsStale ()) + { + entry->StartDelayTimer (); + entry->MarkDelay (); + *hardwareDestination = entry->GetMacAddress (); + return true; + } } } return false;