当然,在aodv_packet.h中的添加:
no 1
#define AODVTYPE_RREQ 0x02
no 2
#define HDR_AODV_REQUEST(p) ((struct hdr_aodv_request*)hdr_aodv::access(p))
no 3 增加结构体
struct hdr_aodv_request {
......
需要一个inline函数,用来计算这个类型头部的长度,范例:
inline int size() {
int sz = 0;
sz = 7*sizeof(u_int32_t);
assert (sz >= 0);
return sz;
}
};
做好如上工作后,编译成功后运行会出现如下错误:
format_aodv: Invalid AODV packet type
解决办法:
在ns-2.33/trace/cum-trace.cc的函数
CMUTrace::format_aodv(Packet *p, int offset)
中要加入你自己设置的包类型
在下面加:
case AODVTYPE_RREP:
case AODVTYPE_HELLO:
case AODVTYPE_RERR:
case AODVTYPE_YOURPACKET: