src/devices/wifi/mac-low.cc
changeset 6599 8c1a255c05a3
parent 6595 3289a9d91620
child 6606 2f2b67218332
equal deleted inserted replaced
6598:7459bc9f1a3b 6599:8c1a255c05a3
   809           if (hdr.IsQosAck ())
   809           if (hdr.IsQosAck ())
   810             {
   810             {
   811               AgreementsI it = m_bAckAgreements.find (std::make_pair (hdr.GetAddr2 (), hdr.GetQosTid ()));
   811               AgreementsI it = m_bAckAgreements.find (std::make_pair (hdr.GetAddr2 (), hdr.GetQosTid ()));
   812               RxCompleteBufferedPacketsWithSmallerSequence (it->second.first.GetStartingSequence (),
   812               RxCompleteBufferedPacketsWithSmallerSequence (it->second.first.GetStartingSequence (),
   813                                                             hdr.GetAddr2 (), hdr.GetQosTid ());
   813                                                             hdr.GetAddr2 (), hdr.GetQosTid ());
   814               RxCompleteBufferedPackets (hdr.GetAddr2 (), hdr.GetQosTid ());
   814               RxCompleteBufferedPacketsUntilFirstLost (hdr.GetAddr2 (), hdr.GetQosTid ());
   815               NS_ASSERT (m_sendAckEvent.IsExpired ());
   815               NS_ASSERT (m_sendAckEvent.IsExpired ());
   816               m_sendAckEvent = Simulator::Schedule (GetSifs (),
   816               m_sendAckEvent = Simulator::Schedule (GetSifs (),
   817                                                     &MacLow::SendAckAfterData, this,
   817                                                     &MacLow::SendAckAfterData, this,
   818                                                     hdr.GetAddr2 (), 
   818                                                     hdr.GetAddr2 (), 
   819                                                     hdr.GetDuration (),
   819                                                     hdr.GetDuration (),
  1561 {
  1561 {
  1562   AgreementsI it = m_bAckAgreements.find (std::make_pair (originator, tid));
  1562   AgreementsI it = m_bAckAgreements.find (std::make_pair (originator, tid));
  1563   if (it != m_bAckAgreements.end ())
  1563   if (it != m_bAckAgreements.end ())
  1564     {
  1564     {
  1565       RxCompleteBufferedPacketsWithSmallerSequence (it->second.first.GetStartingSequence (), originator, tid);
  1565       RxCompleteBufferedPacketsWithSmallerSequence (it->second.first.GetStartingSequence (), originator, tid);
  1566       RxCompleteBufferedPackets (originator, tid);
  1566       RxCompleteBufferedPacketsUntilFirstLost (originator, tid);
  1567       m_bAckAgreements.erase (it);
  1567       m_bAckAgreements.erase (it);
  1568     }
  1568     }
  1569 }
  1569 }
  1570 
  1570 
  1571 void
  1571 void
  1627       (*it).second.second.erase ((*it).second.second.begin (), i);
  1627       (*it).second.second.erase ((*it).second.second.begin (), i);
  1628     }
  1628     }
  1629 }
  1629 }
  1630 
  1630 
  1631 void
  1631 void
  1632 MacLow::RxCompleteBufferedPackets (Mac48Address originator, uint8_t tid)
  1632 MacLow::RxCompleteBufferedPacketsUntilFirstLost (Mac48Address originator, uint8_t tid)
  1633 {
  1633 {
  1634   AgreementsI it = m_bAckAgreements.find (std::make_pair (originator, tid));
  1634   AgreementsI it = m_bAckAgreements.find (std::make_pair (originator, tid));
  1635   if (it != m_bAckAgreements.end ())
  1635   if (it != m_bAckAgreements.end ())
  1636     {
  1636     {
  1637       uint16_t startingSeqCtrl = ((*it).second.first.GetStartingSequence ()<<4) & 0xfff0;
  1637       uint16_t startingSeqCtrl = ((*it).second.first.GetStartingSequence ()<<4) & 0xfff0;