From 2abc08f9ef6c66fd3bc524929e70ffe365bd5782 Mon Sep 17 00:00:00 2001 From: Borovkova Elena Date: Thu, 9 Jul 2009 20:34:34 +0400 Subject: [PATCH] BroadcastId methods and SendRequest() added --- src/routing/aodv/aodv-routing-protocol.cc | 23 +++++++++++++++++++++-- 1 file changed, 21 insertions(+), 2 deletions(-) diff --git a/src/routing/aodv/aodv-routing-protocol.cc b/src/routing/aodv/aodv-routing-protocol.cc index 65f83fff9..e837cd7eb 100644 --- a/src/routing/aodv/aodv-routing-protocol.cc +++ b/src/routing/aodv/aodv-routing-protocol.cc @@ -227,8 +227,27 @@ RoutingProtocol::RecvAodv (Ptr socket) void RoutingProtocol::RecvRequest (Ptr p) { - Ipv4Header ipv4Header; - p->RemoveHeader(ipv4Header); + RreqHeader h; + p->RemoveHeader(h); + uint32_t id = h.GetId(); + Ipv4Address src = h.GetSrc(); + // Node checks to determine whether it has received a RREQ + // with the same Originator IP Address and RREQ ID. + // If such a RREQ has been received, the node + // silently discards the newly received RREQ. + if(LookupBroadcastId(src, id)) + { + //drop(); + return; + } + + uint8_t hop = h.GetHopCount(); + hop++; + h.SetHopCount(hop); + aodv_rt_entry toSrc; + if(!rtable.rt_lookup(src, toSrc)); + + } void