|
View:
New views
3 Messages
—
Rating Filter:
Alert me
|
|
|
Patching AOMDV into ns2Hello everyone, Do anybody in this forum know the way to patch the original AODV in ns2 into AOMDV? I have got the AOMDV source code for ns-allinone-2.14ba. But I do not think I can simply replace the original AODV files with the AOMDV source files and everything will work. Can anyone please please help me out on the procedures to install AOMDV for later release of ns2? Thank you very very much. Best regards, Martin |
|
|
AOMDV for ns-2.29 AvailableHi 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 |
|
|
Re: AOMDV for ns-2.29 AvailableHi 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 > |
| Free embeddable forum powered by Nabble | Forum Help |