[ns] about AODV
=?gbk?B?uvq93A==?=
hujiemail at 163.com
Wed Oct 29 06:15:40 PDT 2008
hi,
I want to record the node's neibor count:
my try:
step 1: add a variable in aodv.h,used to record the numbers of neighbors,i modify the code as follows:
aodv_rtable rthead; // routing table
aodv_ncache nbhead; // Neighbor Cache
aodv_bcache bihead; // Broadcast ID Cache
//*******add for NCR************
int nbcount;
//******************************
step 2: modify the struct "hdr_aodv_request" in file "aodv_packet.h":as follows
// u_int8_t reserved[2];
u_int8_t NCR;
u_int8_t reserved;
step 3:modify "void AODV::recvHello(Packet *p)" in file "aodv.cc":as follows
void AODV::recvHello(Packet *p) {
//struct hdr_ip *ih = HDR_IP(p);
struct hdr_aodv_reply *rp = HDR_AODV_REPLY(p);
AODV_Neighbor *nb;
nb = nb_lookup(rp->rp_dst);
if(nb == 0) {
nb_insert(rp->rp_dst);
//**********add for NCR********
nbcount++;
//******************************
}
else {
nb->nb_expire = CURRENT_TIME +(1.5 * ALLOWED_HELLO_LOSS * HELLO_INTERVAL);
}
Packet::free(p);
}
modify "void AODV::nb_purge()" as follows:
AODV::nb_purge() {
AODV_Neighbor *nb = nbhead.lh_first;
AODV_Neighbor *nbn;
double now = CURRENT_TIME;
for(; nb; nb = nbn) {
nbn = nb->nb_link.le_next;
if(nb->nb_expire <= now) {
nb_delete(nb->nb_addr);
//*****add for NCR*********
nbcount--;
//*************************
}
}
modify the "void AODV::sendRequest(nsaddr_t dst)" in file "cmu_trace.cc"as follows:
sprintf(pt_->buffer() + offset,
"[0x%x %d %d [%d %d] [%d %d]] %d (REQUEST3)",
rq->rq_type,
rq->rq_hop_count,
rq->rq_bcast_id,
rq->rq_dst,
rq->rq_dst_seqno,
rq->rq_src,
rq->rq_src_seqno,
//****
rq->NCR);
//*****
² the result:
s 10.000000000 _0_ AGT --- 0 tcp 40 [0 0 0 0] ------- [0:0 8:0 32 0] [0 0] 0 0
r 10.000000000 _0_ RTR --- 0 tcp 40 [0 0 0 0] ------- [0:0 8:0 32 0] [0 0] 0 0
s 10.000000000 _0_ RTR --- 0 AODV 48 [0 0 0 0] ------- [0:255 -1:255 30 0] [0x2 1 1 [8 0] [0 8]] 2 (REQUEST3)
r 10.001340360 _1_ RTR --- 0 AODV 48 [0 ffffffff 0 800] ------- [0:255 -1:255 30 0] [0x2 1 1 [8 0] [0 8]] 2(REQUEST3)
r 10.001340810 _2_ RTR --- 0 AODV 48 [0 ffffffff 0 800] ------- [0:255 -1:255 30 0] [0x2 1 1 [8 0] [0 8]] 2(REQUEST3)
s 10.006801271 _2_ RTR --- 0 AODV 48 [0 ffffffff 0 800] ------- [2:255 -1:255 29 0] [0x2 2 1 [8 0] [0 8]] 2 (REQUEST3)
r 10.008081677 _3_ RTR --- 0 AODV 48 [0 ffffffff 2 800] ------- [2:255 -1:255 29 0] [0x2 2 1 [8 0] [0 8]] 2 (REQUEST3)
r 10.008081837 _1_ RTR --- 0 AODV 48 [0 ffffffff 2 800] ------- [2:255 -1:255 29 0] [0x2 2 1 [8 0] [0 8]] 2 (REQUEST3)
r 10.008081986 _4_ RTR --- 0 AODV 48 [0 ffffffff 2 800] ------- [2:255 -1:255 29 0] [0x2 2 1 [8 0] [0 8]] 2 (REQUEST3)
r 10.008082081 _0_ RTR --- 0 AODV 48 [0 ffffffff 2 800] ------- [2:255 -1:255 29 0] [0x2 2 1 [8 0] [0 8]] 2 (REQUEST3)
… …
More information about the Ns-users
mailing list