Rietveld Code Review Tool
Help | Bug tracker | Discussion group | Source code | Sign in
(8)

Issue 115075: AODV model for review (Closed)

Can't Edit
Can't Publish+Mail
Start Review
Created:
11 years, 4 months ago by Pavel Boyko
Modified:
11 years, 1 month ago
CC:
ns-3-reviews_googlegroups.com
Visibility:
Public.

Patch Set 1 #

Total comments: 63

Patch Set 2 : Updated patchset #

Total comments: 27

Patch Set 3 : Updated after Tom review #

Unified diffs Side-by-side diffs Delta from patch set Stats (+5830 lines, -43 lines) Patch
A examples/routing/aodv.cc View 1 chunk +214 lines, -0 lines 0 comments Download
M examples/routing/wscript View 1 chunk +4 lines, -0 lines 0 comments Download
M src/applications/v4ping/v4ping.h View 1 2 chunks +39 lines, -0 lines 0 comments Download
M src/applications/v4ping/v4ping.cc View 9 chunks +90 lines, -34 lines 0 comments Download
A src/contrib/average.h View 1 2 1 chunk +82 lines, -0 lines 0 comments Download
M src/contrib/wscript View 1 chunk +1 line, -0 lines 0 comments Download
M src/devices/wifi/adhoc-wifi-mac.h View 2 chunks +4 lines, -1 line 0 comments Download
M src/devices/wifi/adhoc-wifi-mac.cc View 4 chunks +22 lines, -2 lines 0 comments Download
A src/helper/aodv-helper.h View 1 1 chunk +70 lines, -0 lines 0 comments Download
A src/helper/aodv-helper.cc View 1 1 chunk +55 lines, -0 lines 0 comments Download
M src/helper/v4ping-helper.h View 1 chunk +6 lines, -0 lines 0 comments Download
M src/helper/v4ping-helper.cc View 1 chunk +6 lines, -0 lines 0 comments Download
M src/helper/wscript View 1 3 chunks +4 lines, -2 lines 0 comments Download
M src/internet-stack/icmpv4-l4-protocol.cc View 1 chunk +1 line, -0 lines 0 comments Download
M src/internet-stack/ipv4-interface.h View 1 chunk +6 lines, -1 line 0 comments Download
M src/internet-stack/ipv4-interface.cc View 2 chunks +14 lines, -1 line 0 comments Download
M src/internet-stack/ipv4-l3-protocol.cc View 1 3 chunks +1 line, -2 lines 0 comments Download
M src/internet-stack/ipv4-raw-socket-impl.cc View 2 chunks +2 lines, -0 lines 0 comments Download
M src/internet-stack/tcp-l4-protocol.cc View 1 2 chunks +2 lines, -0 lines 0 comments Download
M src/internet-stack/udp-socket-impl.cc View 2 chunks +3 lines, -0 lines 0 comments Download
M src/internet-stack/wscript View 1 1 chunk +2 lines, -0 lines 0 comments Download
M src/node/socket.cc View 1 1 chunk +2 lines, -0 lines 0 comments Download
A src/routing/manet/aodv/aodv.h View 2 1 chunk +86 lines, -0 lines 0 comments Download
A src/routing/manet/aodv/aodv-neighbor.h View 2 1 chunk +114 lines, -0 lines 0 comments Download
A src/routing/manet/aodv/aodv-neighbor.cc View 2 1 chunk +173 lines, -0 lines 0 comments Download
A src/routing/manet/aodv/aodv-packet.h View 2 1 chunk +330 lines, -0 lines 0 comments Download
A src/routing/manet/aodv/aodv-packet.cc View 2 1 chunk +580 lines, -0 lines 0 comments Download
A src/routing/manet/aodv/aodv-routing-protocol.h View 2 1 chunk +254 lines, -0 lines 0 comments Download
A src/routing/manet/aodv/aodv-routing-protocol.cc View 2 1 chunk +1498 lines, -0 lines 0 comments Download
A src/routing/manet/aodv/aodv-rqueue.h View 2 1 chunk +137 lines, -0 lines 0 comments Download
A src/routing/manet/aodv/aodv-rqueue.cc View 2 1 chunk +151 lines, -0 lines 0 comments Download
A src/routing/manet/aodv/aodv-rtable.h View 2 1 chunk +252 lines, -0 lines 0 comments Download
A src/routing/manet/aodv/aodv-rtable.cc View 2 1 chunk +344 lines, -0 lines 0 comments Download
A src/routing/manet/aodv/aodv-test-suite.cc View 2 1 chunk +554 lines, -0 lines 0 comments Download
A src/routing/manet/aodv/test/aodv-regression.h View 1 chunk +184 lines, -0 lines 0 comments Download
A src/routing/manet/aodv/test/aodv-regression.cc View 1 chunk +171 lines, -0 lines 0 comments Download
A src/routing/manet/aodv/waf View 2 1 chunk +1 line, -0 lines 0 comments Download
A src/routing/manet/aodv/wscript View 2 1 chunk +25 lines, -0 lines 0 comments Download
A src/routing/manet/dpd/dpd.h View 1 chunk +59 lines, -0 lines 0 comments Download
A src/routing/manet/dpd/dpd.cc View 1 chunk +50 lines, -0 lines 0 comments Download
A src/routing/manet/dpd/id-cache.h View 2 1 chunk +86 lines, -0 lines 0 comments Download
A src/routing/manet/dpd/id-cache.cc View 2 1 chunk +131 lines, -0 lines 0 comments Download
A src/routing/manet/dpd/waf View 2 1 chunk +1 line, -0 lines 0 comments Download
A src/routing/manet/dpd/wscript View 1 chunk +17 lines, -0 lines 0 comments Download
M src/wscript View 1 1 chunk +2 lines, -0 lines 0 comments Download

Messages

Total messages: 19
kevjay
In order to build through cygwin, I had to change all instances of UniformVariable::GetValue to ...
11 years, 4 months ago (2009-09-22 02:10:01 UTC) #1
Pavel Boyko
I have fixed this in our repository (https://forge.wenos.ru/hgprojects/ns3aodv) and will upload new changeset after upcoming ...
11 years, 4 months ago (2009-09-30 15:57:36 UTC) #2
Shantanu
Sir, I am implementing the AODV protocol in my project using NS-3.5.1.But I am finding ...
11 years, 3 months ago (2009-10-12 09:00:28 UTC) #3
Pavel Boyko
Hi, Shantanu, Waf seems to be case-sensitive here (as your filesystem is), try "./waf --run ...
11 years, 3 months ago (2009-10-12 13:47:31 UTC) #4
Shantanu
Hello Sir, Thanks for replying. Refering to your advice I had again gone through the ...
11 years, 3 months ago (2009-10-13 06:25:46 UTC) #5
Shantanu
On 2009/10/13 06:25:46, Shantanu wrote: > Hello Sir, > Thanks for replying. Refering to your ...
11 years, 3 months ago (2009-10-21 10:12:55 UTC) #6
faker.moatamri
Please find a review of your code. http://codereview.appspot.com/115075/diff/1/2 File examples/aodv.cc (right): http://codereview.appspot.com/115075/diff/1/2#newcode37 Line 37: /** ...
11 years, 3 months ago (2009-10-22 20:39:32 UTC) #7
Shantanu
Take a look. http://codereview.appspot.com/115075/diff/1/2 File examples/aodv.cc (right): http://codereview.appspot.com/115075/diff/1/2#newcode37 Line 37: /** On 2009/10/22 20:39:32, faker.moatamri ...
11 years, 3 months ago (2009-10-26 05:59:58 UTC) #8
Pavel Boyko
Faker, thank you for review. I have done almost all proposed fixes, you can pull ...
11 years, 3 months ago (2009-10-26 07:29:09 UTC) #9
upola.aec
http://codereview.appspot.com/115075/diff/1/12 File src/helper/wscript (left): http://codereview.appspot.com/115075/diff/1/12#oldcode31 Line 31: 'athstats-helper.cc', athstats-helper.cc, ipv6-address-helper.cc, ipv6-interface-container.cc are not found in ...
11 years, 3 months ago (2009-10-28 05:01:08 UTC) #10
Tom Henderson
This looks good and complete. My main comments/questions are included below, but are: 1) can ...
11 years, 3 months ago (2009-10-28 06:06:07 UTC) #11
Elena Buchatskaia
http://codereview.appspot.com/115075/diff/10002/9007 File src/contrib/average.h (right): http://codereview.appspot.com/115075/diff/10002/9007#newcode21 Line 21: #ifndef STATS_H_ On 2009/10/28 06:06:07, Tom H. wrote: ...
11 years, 3 months ago (2009-10-29 20:35:29 UTC) #12
Pavel Boyko
Tom, Thank you for thorough review! > 1) can you document what is modelized and ...
11 years, 3 months ago (2009-10-30 10:15:10 UTC) #13
Tom Henderson
There are a few things combined in this patchset: 1) TTL fix for IPv4L3Protocol 2) ...
11 years, 2 months ago (2009-11-11 14:52:35 UTC) #14
Pavel Boyko
Tom, This review is going to be endless. That's why nothing is merged at the ...
11 years, 2 months ago (2009-11-12 08:45:43 UTC) #15
Tom Henderson
> So far you say nothing about AODV (point 3 of your list above). Do ...
11 years, 2 months ago (2009-11-14 16:05:22 UTC) #16
Mariusz Skrocki
Hi, I'm not entirely sure, but it seems to me that in the method RoutingTable::Purge ...
11 years, 2 months ago (2009-11-18 08:00:10 UTC) #17
Pavel Boyko
Good catch! Fixed. On 2009/11/18 08:00:10, mskrocki wrote: > Hi, > I'm not entirely sure, ...
11 years, 2 months ago (2009-11-18 08:29:54 UTC) #18
Mariusz Skrocki
11 years, 1 month ago (2009-12-07 13:09:01 UTC) #19
I have a small problem... 
I wanted to compare the functionality and efficiency of the AODV protocol in
ns-3 with the implementation in JIST/SWANS. One of the tested topology was a
matrix of nodes, to which in each simulation I added one row and one column of
nodes. The flow of data was set between the first and last node in the network,
located at two ends of the diagonal of the network. I noticed that an increasing
number of nodes in the network couses bigger packet loss, which is obvious,
however, these losses were growing much faster than in simulation using JIST. 
I reviewed the logs from the simulation along with a colleague and we noticed
that sometimes in the routing table in nodes there appears a strange entry, in
which the source, destination and gateway address are set to 102.102.102.102.
The entry is added to the routing table at the time when the source node sends a
RREQ, because there is no entry corresponding to the target node. 
As we noted after receiving the RREP message corresponding to RREQ, the source
node adds a new entry to its routing table, but does not remove the entry
containing the address of 102.102.102.102. Would not be better if we add an
empty entry specifying, however,  the RREQ Destination address?

void
RoutingProtocol::SendRequest (Ipv4Address dst)
...
  RoutingTableEntry rt;
  if (m_routingTable.LookupRoute (dst, rt))
    {
      rreqHeader.SetHopCount (rt.GetHop ());
      if (rt.GetValidSeqNo ())
        rreqHeader.SetDstSeqno (rt.GetSeqNo ());
      else
        rreqHeader.SetUnknownSeqno (true);
      rt.SetFlag (IN_SEARCH);
      m_routingTable.AddRoute (rt);
    }
  else
    {
      rreqHeader.SetUnknownSeqno (true);
      RoutingTableEntry newEntry;
      newEntry.SetFlag (IN_SEARCH);
      newEntry.SetDestination(dst);   // Shouldn't we add destination address to
the entry?
      m_routingTable.AddRoute (newEntry);
    }
…
}


We found also that the problem exists also in RouteRequestTimerExpire method,
because it does not check whether the entry was found in the routing table.
Shouldn't we check here whether the entry was found in the routing table?

void
RoutingProtocol::RouteRequestTimerExpire (Ipv4Address dst)
{
  NS_LOG_LOGIC(this);
  RoutingTableEntry toDst;

  if (!m_routingTable.LookupRoute (dst, toDst)) // Shouldn't we check it here?
    { 
      return;
    }

  if (toDst.GetFlag () == VALID)
    {
      SendPacketFromQueue (dst, toDst.GetRoute ());
      NS_LOG_LOGIC ("route to " << dst << " found from " <<
toDst.GetInterface().GetLocal());
      return;
    }
…

--
Yours Sincerely
Mariusz Skrocki
Sign in to reply to this message.

Powered by Google App Engine
RSS Feeds Recent Issues | This issue
This is Rietveld f62528b