--- a/src/devices/mesh/dot11s/hwmp-mac-plugin.cc Wed Apr 29 13:06:06 2009 +0400
+++ b/src/devices/mesh/dot11s/hwmp-mac-plugin.cc Wed Apr 29 13:06:55 2009 +0400
@@ -170,7 +170,7 @@
preq.SetOriginatorAddress (m_protocol->GetAddress ());
preq.SetOriginatorSeqNumber (originator_seqno);
preq.SetLifetime (m_protocol->GetActivePathLifetime ());
- preq.AddDestinationAddressElement (false, false, dst, dst_seqno);
+ preq.AddDestinationAddressElement (m_protocol->GetDoFlag (), m_protocol->GetRfFlag (), dst, dst_seqno);
m_preqQueue.push_back (preq);
//set iterator position to my preq:
SendOnePreq ();
--- a/src/devices/mesh/dot11s/hwmp-protocol.cc Wed Apr 29 13:06:06 2009 +0400
+++ b/src/devices/mesh/dot11s/hwmp-protocol.cc Wed Apr 29 13:06:55 2009 +0400
@@ -361,7 +361,6 @@
}
if ((*i)->GetDestinationAddress () == GetAddress ())
{
- preq.DelDestinationAddressElement ((*i)->GetDestinationAddress());
SendPrep (
GetAddress (),
preq.GetOriginatorAddress (),
@@ -372,29 +371,30 @@
preq.GetLifetime (),
interface
);
+ preq.DelDestinationAddressElement ((*i)->GetDestinationAddress());
continue;
}
//check if can answer:
HwmpRtable::LookupResult result = m_rtable->LookupReactive ((*i)->GetDestinationAddress());
if ((! ((*i)->IsDo())) && (result.retransmitter != Mac48Address::GetBroadcast()))
{
- //have a valid information and acn answer
+ //have a valid information and can answer
+ SendPrep (
+ (*i)->GetDestinationAddress (),
+ preq.GetOriginatorAddress (),
+ from,
+ result.metric,
+ preq.GetOriginatorSeqNumber (),
+ result.seqnum +1,
+ preq.GetLifetime (),
+ interface
+ );
+
if ((*i)->IsRf ())
- (*i)->SetFlags (true, false, (*i)->IsUsn ()); //DO = 1, RF = 0 (as it was)
+ (*i)->SetFlags (true, false, (*i)->IsUsn ()); //DO = 1, RF = 0
else
{
- //send a PREP and delete destination
preq.DelDestinationAddressElement ((*i)->GetDestinationAddress());
- SendPrep (
- (*i)->GetDestinationAddress (),
- preq.GetOriginatorAddress (),
- from,
- result.metric,
- preq.GetOriginatorSeqNumber (),
- result.seqnum +1,
- preq.GetLifetime (),
- interface
- );
continue;
}
}