--- a/src/routing/olsr/model/olsr-routing-protocol.cc Tue Feb 15 17:19:13 2011 +0000 +++ a/src/routing/olsr/model/olsr-routing-protocol.cc Tue Feb 15 19:16:27 2011 +0000 @@ -2451,7 +2451,23 @@ #ifdef NS3_LOG_ENABLE int statusBefore = nb_tuple->status; #endif // NS3_LOG_ENABLE - if (tuple.symTime >= Simulator::Now ()) + + bool hasSymmetricLink = false; + + const LinkSet &linkSet = m_state.GetLinks (); + for (LinkSet::const_iterator it = linkSet.begin(); + it != linkSet.end(); it++) + { + const LinkTuple &link_tuple = *it; + if (GetMainAddress (link_tuple.neighborIfaceAddr) == nb_tuple->neighborMainAddr + && link_tuple.symTime >= Simulator::Now ()) + { + hasSymmetricLink = true; + break; + } + } + + if (hasSymmetricLink) { nb_tuple->status = NeighborTuple::STATUS_SYM; NS_LOG_DEBUG (*nb_tuple << "->status = STATUS_SYM; changed:"