本文内容来自于网络上各版本的总结,在此感谢他们!
在NS2的AODV协议中,如希望某个节点侦听到其邻居节点间通信信息时,不能直接在AODV协议中获取邻居节点之间的数据,因而要设置成混在模式下的监听过程。下面具体介绍如何添加该过程:
1.修改aodv/aodv.h
#include <mac.h>
class AODV: public Tap, public Agent {
public:
void tap(const Packet *p);
......
protected:
Mac *mac_;
......
}
2.修改aodv/aodv.cc
int
AODV::command(int argc, const char*const* argv) {
......
else if(argc == 3) {
......
else if (strcmp(argv[1], "install-tap") == 0) {
mac_ = (Mac*)TclObject::lookup(argv[2]);
if (mac_ == 0) return TCL_ERROR;
mac_->installTap(this);
return TCL_OK;
}
}
return Agent::command(argc, argv);
}
void
AODV::tap(const Packet *p) {
// put your code here
}