Bug 825 - UDP-Client-server's packet loss counter not properly reset

This commit is contained in:
Mohamed Amine Ismail
2010-04-22 14:26:58 +02:00
parent 597d33edb3
commit 92be81578e
2 changed files with 7 additions and 9 deletions

View File

@@ -60,7 +60,7 @@ PacketLossCounter::SetBitMapSize (uint16_t winSize)
delete [] m_receiveBitMap;
}
m_receiveBitMap = new uint8_t [m_bitMapSize] ();
memset (m_receiveBitMap,1,m_bitMapSize);
memset (m_receiveBitMap,0xFF,m_bitMapSize);
}
uint32_t
@@ -103,17 +103,14 @@ PacketLossCounter::SetBit(uint32_t seqNum, bool val)
void
PacketLossCounter::NotifyReceived (uint32_t seqNum)
{
if (seqNum>(uint32_t)(m_bitMapSize*8)-1)
for (uint32_t i=m_lastMaxSeqNum+1; i<=seqNum;i++)
{
for (uint32_t i=m_lastMaxSeqNum+1; i<=seqNum;i++)
if (GetBit(i)!=1)
{
if (GetBit(i)!=1)
{
NS_LOG_INFO ("Packet lost: " << i-(m_bitMapSize*8));
m_lost++;
}
SetBit(i, 0);
NS_LOG_INFO ("Packet lost: " << i-(m_bitMapSize*8));
m_lost++;
}
SetBit(i, 0);
}
SetBit(seqNum, 1);
if (seqNum>m_lastMaxSeqNum)

View File

@@ -208,6 +208,7 @@ PacketLossCounterTestCase::~PacketLossCounterTestCase ()
bool PacketLossCounterTestCase::DoRun (void)
{
PacketLossCounter lossCounter(32);
lossCounter.NotifyReceived(32); //out of order
for (uint32_t i=0;i<64;i++)
{
lossCounter.NotifyReceived(i);