From 179fb6facf76ccc4f0599bbf93899e0667930cf7 Mon Sep 17 00:00:00 2001 From: Nonoo Date: Mon, 26 Oct 2020 17:56:00 +0100 Subject: [PATCH] Prevent RX seqbuf congestions caused by late entries --- seqbuf.go | 2 ++ 1 file changed, 2 insertions(+) diff --git a/seqbuf.go b/seqbuf.go index d73c5e2..488e91c 100644 --- a/seqbuf.go +++ b/seqbuf.go @@ -66,6 +66,7 @@ func (s *seqBuf) addToFront(seq seqNum, data []byte) { func (s *seqBuf) addToBack(seq seqNum, data []byte) { e := s.createEntry(seq, data) + e.addedAt = time.Time{} // Release the packet from the seqbuf as soon as possible, as it is a late entry. s.entries = append(s.entries, e) s.notifyWatcher() @@ -83,6 +84,7 @@ func (s *seqBuf) insert(seq seqNum, data []byte, toPos int) (addedToFront bool) sliceBefore := s.entries[:toPos] sliceAfter := s.entries[toPos:] e := s.createEntry(seq, data) + e.addedAt = time.Time{} // Release the packet from the seqbuf as soon as possible, as it is a late entry. s.entries = append(sliceBefore, append([]seqBufEntry{e}, sliceAfter...)...) s.notifyWatcher()