diff -r e86da132e7e9 -r cfb7c304cf2d src/internet/model/icmpv6-l4-protocol.cc --- a/src/internet/model/icmpv6-l4-protocol.cc Sat May 25 18:18:00 2013 +0200 +++ b/src/internet/model/icmpv6-l4-protocol.cc Sat May 25 21:36:10 2013 +0200 @@ -292,9 +292,15 @@ bool next = true; bool hasLla = false; bool hasMtu = false; + Ipv6Address defaultRouter = Ipv6Address::GetZero (); p->RemoveHeader (raHeader); + if (raHeader.GetLifeTime()) + { + defaultRouter = src; + } + while (next == true) { uint8_t type = 0; @@ -305,7 +311,7 @@ case Icmpv6Header::ICMPV6_OPT_PREFIX: p->RemoveHeader (prefixHdr); ipv6->AddAutoconfiguredAddress (ipv6->GetInterfaceForDevice (interface->GetDevice ()), prefixHdr.GetPrefix (), prefixHdr.GetPrefixLength (), - prefixHdr.GetFlags (), prefixHdr.GetValidTime (), prefixHdr.GetPreferredTime (), src); + prefixHdr.GetFlags (), prefixHdr.GetValidTime (), prefixHdr.GetPreferredTime (), defaultRouter); break; case Icmpv6Header::ICMPV6_OPT_MTU: /* take in account the first MTU option */