dcsctp: Fix post-review comments for DataTracker
These are some fixes that were added after submission of https://webrtc-review.googlesource.com/c/src/+/213664 Mainly: * Don't accept TSNs that have a too large difference from expected * Renaming of member variable (to confirm to style guidelines) Bug: webrtc:12614 Change-Id: I06e11ab2acf5d307b68c3cbc135fde2c038ee690 Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/215070 Commit-Queue: Victor Boivie <boivie@webrtc.org> Reviewed-by: Tommi <tommi@webrtc.org> Cr-Commit-Position: refs/heads/master@{#33721}
This commit is contained in:
committed by
Commit Bot
parent
0498519844
commit
c54f6722ce
@ -38,6 +38,13 @@ namespace dcsctp {
|
||||
// 200ms, whatever is smallest).
|
||||
class DataTracker {
|
||||
public:
|
||||
// The maximum number of accepted in-flight DATA chunks. This indicates the
|
||||
// maximum difference from this buffer's last cumulative ack TSN, and any
|
||||
// received data. Data received beyond this limit will be dropped, which will
|
||||
// force the transmitter to send data that actually increases the last
|
||||
// cumulative acked TSN.
|
||||
static constexpr uint32_t kMaxAcceptedOutstandingFragments = 256;
|
||||
|
||||
explicit DataTracker(absl::string_view log_prefix,
|
||||
Timer* delayed_ack_timer,
|
||||
TSN peer_initial_tsn)
|
||||
@ -46,6 +53,11 @@ class DataTracker {
|
||||
last_cumulative_acked_tsn_(
|
||||
tsn_unwrapper_.Unwrap(TSN(*peer_initial_tsn - 1))) {}
|
||||
|
||||
// Indicates if the provided TSN is valid. If this return false, the data
|
||||
// should be dropped and not added to any other buffers, which essentially
|
||||
// means that there is intentional packet loss.
|
||||
bool IsTSNValid(TSN tsn) const;
|
||||
|
||||
// Call for every incoming data chunk.
|
||||
void Observe(TSN tsn,
|
||||
AnyDataChunk::ImmediateAckFlag immediate_ack =
|
||||
@ -113,7 +125,7 @@ class DataTracker {
|
||||
// All TSNs up until (and including) this value have been seen.
|
||||
UnwrappedTSN last_cumulative_acked_tsn_;
|
||||
// Received TSNs that are not directly following `last_cumulative_acked_tsn_`.
|
||||
std::set<UnwrappedTSN> additional_tsns;
|
||||
std::set<UnwrappedTSN> additional_tsns_;
|
||||
std::set<UnwrappedTSN> duplicates_;
|
||||
};
|
||||
} // namespace dcsctp
|
||||
|
||||
Reference in New Issue
Block a user