I deeply apologize if this is a double post, but I had issues when I was signing up for the mailing list(mistyped my email), so I don't think my first post got to the list.
Hello, I'm working with the DSR implementation in ns2.27 (I'm using an older version because I hope to use a multi-rate 802.11 mac implementation that was written for this version). Right now I've left the mac stuff untouched and I'm concentrating on implementing the FRESH metric in the DSR implementation. In a nutshell FRESH optimizes the route discovery broadcasts of DSR so that they're targeted toward the destination, (paper: http://www.sigmobile.org/mobihoc/2003/papers/p257-dubois.pdf ). I'm using a 100 node simulation with random waypoint mobility generated via the ns setdest program and a single TCP flow and 2000 second simulation time. FRESH is able to find a route just fine and delever tcp traffic and it handles route errors, but about 800 seconds into the simulation I get an error "check_pktRTS:Invalid MAC Control subtype" which I tracked down to a failed switch statement in mac-802_11.cc/int Mac802_11::check_pktRTS(). From what I can tell this switch statement is supposed to be checking that the RTS (Request to Send I'm assuming) packet has be created correctly. Using gdb I've compared the mh of a check_pktRTS() that doesn't fail (gdb) print *mh $5 = {dh_fc = {fc_subtype = 11 '\v', fc_type = 1 '\001', fc_protocol_version = 0 '\0', fc_order = 0 '\0', fc_wep = 0 '\0', fc_more_data = 0 '\0', fc_pwr_mgt = 0 '\0', fc_retry = 0 '\0', fc_more_frag = 0 '\0', fc_from_ds = 0 '\0', fc_to_ds = 0 '\0'}, dh_duration = 1278, dh_ra = "\000\000\000\022\000", dh_ta = "\000\000\000\025\000", dh_3a = "\000\000\000\000\000", dh_scontrol = 0, dh_body = 0xa0569f8 ""} to one that does fail (gdb) print *mh $6 = {dh_fc = {fc_subtype = 0 '\0', fc_type = 0 '\0', fc_protocol_version = 0 '\0', fc_order = 0 '\0', fc_wep = 0 '\0', fc_more_data = 0 '\0', fc_pwr_mgt = 0 '\0', fc_retry = 0 '\0', fc_more_frag = 0 '\0', fc_from_ds = 0 '\0', fc_to_ds = 0 '\0'}, dh_duration = 0, dh_ra = "\000\000\000\000\000", dh_ta = "\000\000\000\000\000", dh_3a = "\000\000\000\000\000", dh_scontrol = 0, dh_body = 0xa87b188 ""} googling and searching of this list archives didn't yield an answer to what's going on here, seems no one has run into this before, though there are a lot of references to other issues with this MAC implementation. It seems that the RTS packet should be generated in sendRTS, but somehow this check_pktRTS is getting a RTS that is not null since it doesn't fail the assert at the begging of that function, which seems to indicate sendRTS WAS called, but the header information is empty which seems to indicate the sendRTS WASN'T called. Especially, since I didn't change anything in the MAC implementation I'm at a loss as to what's going on. Any help that anyone could offer would be greatly appreciated, Ryan