From ffddab282282b6ebbf0de0015122b801b8acf1f9 Mon Sep 17 00:00:00 2001 From: Nonoo Date: Sat, 21 Nov 2020 18:44:08 +0100 Subject: [PATCH] Revert "Remove out of order check as it is already done by the RX seqbuf" This reverts commit 55b220d14dba14970204897e84980c04d0358e32. --- serialstream.go | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/serialstream.go b/serialstream.go index dadcc24..2d60033 100644 --- a/serialstream.go +++ b/serialstream.go @@ -65,6 +65,12 @@ func (s *serialStream) sendOpenClose(close bool) error { func (s *serialStream) handleRxSeqBufEntry(e seqBufEntry) { gotSeq := uint16(e.seq) if s.receivedSerialData { + // Out of order packets can happen if we receive a retransmitted packet, but too late. + if s.rxSeqBuf.leftOrRightCloserToSeq(e.seq, seqNum(s.lastReceivedSeq)) != left { + log.Debug("got out of order pkt seq #", e.seq) + return + } + expectedSeq := s.lastReceivedSeq + 1 if expectedSeq != gotSeq { var missingPkts int