« Return to Thread: Patching AOMDV into ns2

Re: AOMDV for ns-2.29 Available

by Ahmad Khayyat-2 :: Rate this Message:

Reply to Author | View in Thread


Hi again,

I forgot to mention one more thing. It is best to disable ARP while
using AOMDV (or anything else ;) ). You can do so by simple adding the
following lines at the top of the arpresolve method of the ARPTable
class in the file mac/arp.cc:

int
ARPTable::arpresolve(nsaddr_t dst, Packet *p, LL *ll)
{
// Disable ARP
    hdr_cmn *ch = HDR_CMN(p);
    mac_->hdr_dst((char*) HDR_MAC(p), ch->next_hop());
    return 0;

    ARPEntry *llinfo ;
    ...

Enjoy,

- Ahmad Khayyat

Ahmad Khayyat wrote:

> 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