Merge with ns3dev
This commit is contained in:
@@ -170,7 +170,7 @@ HwmpMacPlugin::RequestDestination (Mac48Address dst, uint32_t originator_seqno,
|
||||
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 ();
|
||||
|
||||
@@ -361,7 +361,6 @@ HwmpProtocol::ReceivePreq (IePreq preq, Mac48Address from, uint32_t interface, u
|
||||
}
|
||||
if ((*i)->GetDestinationAddress () == GetAddress ())
|
||||
{
|
||||
preq.DelDestinationAddressElement ((*i)->GetDestinationAddress());
|
||||
SendPrep (
|
||||
GetAddress (),
|
||||
preq.GetOriginatorAddress (),
|
||||
@@ -372,29 +371,30 @@ HwmpProtocol::ReceivePreq (IePreq preq, Mac48Address from, uint32_t interface, u
|
||||
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;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user