From 32dfe417febe644a9a64e790adf7730a38c68871 Mon Sep 17 00:00:00 2001 From: Borovkova Elena Date: Mon, 17 Aug 2009 16:08:52 +0400 Subject: [PATCH] forwarding RERR corrected --- src/routing/aodv/aodv-routing-protocol.cc | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/src/routing/aodv/aodv-routing-protocol.cc b/src/routing/aodv/aodv-routing-protocol.cc index 1ae5c0110..6cec85934 100644 --- a/src/routing/aodv/aodv-routing-protocol.cc +++ b/src/routing/aodv/aodv-routing-protocol.cc @@ -1157,7 +1157,7 @@ RoutingProtocol::RecvError (Ptr p, Ipv4Address src ) bool noDelete = rerrHeader.GetNoDelete (); if (noDelete) { - + NS_LOG_LOGIC ("Receive RERR with no delete flag."); } std::map dstWithNextHopSrc; std::map unreachable; @@ -1195,6 +1195,16 @@ RoutingProtocol::RecvError (Ptr p, Ipv4Address src ) ++i; } } + if (rerrHeader.GetDestCount () != 0) + { + TypeHeader typeHeader (AODVTYPE_RERR); + Ptr packet = Create (); + packet->AddHeader (rerrHeader); + packet->AddHeader (typeHeader); + NS_LOG_DEBUG ("RERR header"); + rerrHeader.Print(std::cout); + SendRerrMessage (packet, precursors); + } if (!noDelete) m_routingTable.InvalidateRoutesWithDst (unreachable); NS_LOG_LOGIC ("After receive RERR");