diff -r ed0b2d9301a1 -r b4ff2de019e5 src/internet-stack/ipv6-l3-protocol.cc --- a/src/internet-stack/ipv6-l3-protocol.cc Tue Dec 01 18:34:11 2009 +0300 +++ b/src/internet-stack/ipv6-l3-protocol.cc Wed Dec 02 14:02:41 2009 +0100 @@ -635,7 +635,13 @@ hdr = BuildHeader (source, destination, protocol, packet->GetSize (), ttl); - if (!source.IsAny ()) + //for link-local traffic, we need to determine the interface + if (source.IsLinkLocal() || + destination.IsLinkLocal() || + destination.IsAllNodesMulticast() || + destination.IsAllRoutersMulticast() || + destination.IsAllHostsMulticast() || + destination.IsSolicitedMulticast()) { int32_t index = GetInterfaceForAddress (source); NS_ASSERT (index >= 0);