[ns] a question about dmux_->recv() in AODV

大鹏 曲 dapengqu at yahoo.com.cn
Sat May 9 17:47:20 PDT 2009


hi :
    Recently, I study the AODV code in ns2-2.28 developed by you, but there is a quetion puzzling me for a while. 
There are some code in "void AODV::forward(aodv_rt_entry *rt, Packet *p, double delay)" in AODV.cc
......
if (ch->ptype() != PT_AODV && ch->direction() == hdr_cmn::UP &&
 ((u_int32_t)ih->daddr() == IP_BROADCAST)
  || ((u_int32_t)ih->daddr() == here_.addr_)) {
   dmux_->recv(p,0);
   return;
 }
......
I think that when a node S receives a packet, it firstly checks if the packet is from itself.  If S originates the packet and there is no loop or if S is an intermediate node that forwards the packet, it performs "rt_resolve()" or "forward()"; If a node S that is the destination of a packet receives the packet, then it performs "dmux_->recv(p,0)" in "forward()" function as above.  Is that right ? However, when I run a tcl script using AODV, it seems that the "dmux_->recv()" don't performance. If it don't perform, how a packet are dealt with at the destination? 
   
Thank you !


      ___________________________________________________________ 
  好玩贺卡等你发,邮箱贺卡全新上线! 
http://card.mail.cn.yahoo.com/


More information about the Ns-users mailing list