+27
-24
lines changedFilter options
+27
-24
lines changed Original file line number Diff line number Diff line change
@@ -5302,6 +5302,31 @@ void * srt::CUDT::tsbpd(void* param)
5302
5302
HLOGC(tslog.Debug, log << self->CONID() << "tsbpd: EXITING");
5303
5303
return NULL;
5304
5304
}
5305
+
5306
+
int srt::CUDT::dropTooLateUpTo(int seqno)
5307
+
{
5308
+
const int seq_gap_len = CSeqNo::seqoff(m_iRcvLastSkipAck, seqno);
5309
+
5310
+
// seq_gap_len can be <= 0 if a packet has been dropped by the sender.
5311
+
if (seq_gap_len > 0)
5312
+
{
5313
+
// Remove [from,to-inclusive]
5314
+
dropFromLossLists(m_iRcvLastSkipAck, CSeqNo::decseq(seqno));
5315
+
m_iRcvLastSkipAck = seqno;
5316
+
}
5317
+
5318
+
const int iDropCnt = m_pRcvBuffer->dropUpTo(seqno);
5319
+
if (iDropCnt > 0)
5320
+
{
5321
+
enterCS(m_StatsLock);
5322
+
// Estimate dropped bytes from average payload size.
5323
+
const uint64_t avgpayloadsz = m_pRcvBuffer->getRcvAvgPayloadSize();
5324
+
m_stats.rcvr.dropped.count(stats::BytesPackets(iDropCnt * avgpayloadsz, (size_t)iDropCnt));
5325
+
leaveCS(m_StatsLock);
5326
+
}
5327
+
return iDropCnt;
5328
+
}
5329
+
5305
5330
#else
5306
5331
void * srt::CUDT::tsbpd(void *param)
5307
5332
{
@@ -5521,30 +5546,6 @@ void * srt::CUDT::tsbpd(void *param)
5521
5546
}
5522
5547
#endif // ENABLE_NEW_RCVBUFFER
5523
5548
5524
-
int srt::CUDT::dropTooLateUpTo(int seqno)
5525
-
{
5526
-
const int seq_gap_len = CSeqNo::seqoff(m_iRcvLastSkipAck, seqno);
5527
-
5528
-
// seq_gap_len can be <= 0 if a packet has been dropped by the sender.
5529
-
if (seq_gap_len > 0)
5530
-
{
5531
-
// Remove [from,to-inclusive]
5532
-
dropFromLossLists(m_iRcvLastSkipAck, CSeqNo::decseq(seqno));
5533
-
m_iRcvLastSkipAck = seqno;
5534
-
}
5535
-
5536
-
const int iDropCnt = m_pRcvBuffer->dropUpTo(seqno);
5537
-
if (iDropCnt > 0)
5538
-
{
5539
-
enterCS(m_StatsLock);
5540
-
// Estimate dropped bytes from average payload size.
5541
-
const uint64_t avgpayloadsz = m_pRcvBuffer->getRcvAvgPayloadSize();
5542
-
m_stats.rcvr.dropped.count(stats::BytesPackets(iDropCnt * avgpayloadsz, (size_t) iDropCnt));
5543
-
leaveCS(m_StatsLock);
5544
-
}
5545
-
return iDropCnt;
5546
-
}
5547
-
5548
5549
void srt::CUDT::updateForgotten(int seqlen, int32_t lastack, int32_t skiptoseqno)
5549
5550
{
5550
5551
enterCS(m_StatsLock);
Original file line number Diff line number Diff line change
@@ -705,11 +705,13 @@ class CUDT
705
705
// TSBPD thread main function.
706
706
static void* tsbpd(void* param);
707
707
708
+
#if ENABLE_NEW_RCVBUFFER
708
709
/// Drop too late packets. Updaet loss lists and ACK positions.
709
710
/// The @a seqno packet itself is not dropped.
710
711
/// @param seqno [in] The sequence number of the first packets following those to be dropped.
711
712
/// @return The number of packets dropped.
712
713
int dropTooLateUpTo(int seqno);
714
+
#endif
713
715
714
716
void updateForgotten(int seqlen, int32_t lastack, int32_t skiptoseqno);
715
717
You can’t perform that action at this time.
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4