Hi, all
   
  Who have once changed the rts_frame?

I added a variable (double ldDistSum)  into the "struct rts_frame", then we 
cannot forward packet. The dh_ra, dh_ta seems erratic. where set the 
"mh->dh_ra, mh->dh_ta" of RTS.  (mh = HDR_MAC802_11(pktRTS_))
 
   
I've debugged it for two days with gdb and understood roughly how the packet 
transmits from AGT to MAC. When the first packet arrives ll layer, it will call 
arpresolve(dst, p, this). There it will call arprequest(src, dst, ll) for we 
don't have a MAC address for next hop hence send an ARP Request. In function 
arprequest() it will call s.schedule(ll->downtarget_, p, delay_). I don't know 
how to go on debugging, but I guess it will run arpinput() and it's seems right.

There the next hop receive the ARP Request and send RTS to previous node. So I 
set breakpoints at recv() in mac-802_11.cc and assure "dh_ra" is right until in 
Mac802_11::recv() I cannot go on debugging for encounter mhDefer_.start().

I thought it should call deferHandler() and run check_pktRTS() when time is 
expired. 

In check_pktRTS() is where I found difference. originally in the function the 
mh->dh_ra, mh->dh_ta is right, but if I've inserted a new variable into the 
"struct rts_frame" here we will get wrong value.

A question is in sendRTS() we didn't set "mh->dh_ra" (mh = 
HDR_MAC802_11(pktRTS_)), then what happened between mhDefer.start() and 
deferHandler(). I think "mh->dh_ra, mh->dh_ta" is set in the  interval.

In short, where set "mh->dh_ra, mh->dh_ta" of RTS.

  Thanks in advance,
  Pei
                
---------------------------------
 雅虎免费邮箱-3.5G容量,20M附件

Reply via email to