« Return to Thread: Patching AOMDV into ns2

AOMDV for ns-2.29 Available

by Ahmad Khayyat-2 :: Rate this Message:

Reply to Author | View in Thread


Hi everyone,

I believe I managed to port the old AOMDV code to ns-2.29. It is my
first time ever to do this sort of work, so it is a rough port that was
done in 2 to 3 days. I tried to be explicit in annotating the changes I
made in the source code. Other than that, I made absolutely no effort to
clean up or even to understand the particulars of the implementation. It
was mostly a mechanical port with the only objective of getting AOMDV to
work in ns-2.29.

Now, AOMDV did work for me under ns-2.29 after this port. However, I
made no effort to verify its correctness and hence cannot comment on
that. It achieved better delivery ratios in my preliminary tests in some
scenarios while in other scenarios it was inferior to plain AODV. This
can be a property of the AOMDV protocol, a defect in the implementation,
or a defect in my port.

I came across situations where I 'guessed' what I should do. So,
revisions of the new code are encouraged and comments are welcome.

Note that ns-2.29 does not compile with g++-4.1, so this port is only
known to compile with g++-4.0. It may or may not compile with g++-4.1.

As in the original AOMDV implementation, you can get three versions of
the protocol by modifying the Makefile.in and then running ./configure
and make. The relevant line in the Makefile.in file reads:
       -DAOMDV -DAOMDV_NODE_DISJOINT_PATHS   # By: Ahmad Khayyat - AOMDV
This will produce the node-disjoint-paths version of AOMDV. Replaing
_NODE_ with _LINK_ so that you have:
       -DAOMDV -DAOMDV_LINK_DISJOINT_PATHS   # By: Ahmad Khayyat - AOMDV
produces the link-disjoint-paths version, while commenting the line
altogether should produce plain AODV. However, for plain AODV, it is
advised to use an untampered AODV source as this code does contain
modifications, although I cannot comment on their effect.

Affected files:
    Makefile.in -1 +2
    aodv/aodv.cc -46 +824
    aodv/aodv.h -6 +115
    aodv/aodv_packet.h -1 +26
    aodv/aodv_rtable.cc -1 +255
    aodv/aodv_rtable.h +79
    common/packet.h +6

As for availability of the port, I can only provide an archive
containing the new modified files. These are available at the following URL:

http://www.ccse.kfupm.edu.sa/~akhayyat/aomdv-ns-2.29.zip

I hope this can be useful to other people.

- Ahmad Khayyat

 « Return to Thread: Patching AOMDV into ns2