From bceab38aa68be075841d573f63a9a9c432bf1fda Mon Sep 17 00:00:00 2001 From: Tom Henderson Date: Tue, 19 Sep 2023 17:05:05 -0700 Subject: [PATCH] internet: (fixes #956) Avoid sending RS when link goes down --- src/internet/model/icmpv6-l4-protocol.cc | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/src/internet/model/icmpv6-l4-protocol.cc b/src/internet/model/icmpv6-l4-protocol.cc index 3bd99ecd8..878da2695 100644 --- a/src/internet/model/icmpv6-l4-protocol.cc +++ b/src/internet/model/icmpv6-l4-protocol.cc @@ -1350,6 +1350,17 @@ Icmpv6L4Protocol::SendRS(Ipv6Address src, Ipv6Address dst, Address hardwareAddre p->AddHeader(llOption); } + if (!src.IsAny()) + { + Ptr ipv6 = m_node->GetObject(); + if (ipv6->GetInterfaceForAddress(src) == -1) + { + NS_LOG_INFO("Preventing RS from being sent or rescheduled because the source address " + << src << " has been removed"); + return; + } + } + NS_LOG_LOGIC("Send RS (from " << src << " to " << dst << ")"); rs.CalculatePseudoHeaderChecksum(src, dst, p->GetSize() + rs.GetSerializedSize(), PROT_NUMBER);