equal
deleted
inserted
replaced
1232 cache = FindCache (device); |
1232 cache = FindCache (device); |
1233 } |
1233 } |
1234 if (cache) |
1234 if (cache) |
1235 { |
1235 { |
1236 NdiscCache::Entry* entry = cache->Lookup (dst); |
1236 NdiscCache::Entry* entry = cache->Lookup (dst); |
1237 if (entry && !(entry->IsIncomplete() || entry->IsProbe())) |
1237 if (entry) |
1238 { |
1238 { |
1239 *hardwareDestination = entry->GetMacAddress (); |
1239 if (entry->IsReachable () || entry->IsDelay ()) |
1240 return true; |
1240 { |
|
1241 *hardwareDestination = entry->GetMacAddress (); |
|
1242 return true; |
|
1243 } |
|
1244 else if (entry->IsStale ()) |
|
1245 { |
|
1246 entry->StartDelayTimer (); |
|
1247 entry->MarkDelay (); |
|
1248 *hardwareDestination = entry->GetMacAddress (); |
|
1249 return true; |
|
1250 } |
1241 } |
1251 } |
1242 } |
1252 } |
1243 return false; |
1253 return false; |
1244 } |
1254 } |
1245 |
1255 |