summaryrefslogtreecommitdiffhomepage
path: root/pkg/tcpip/stack
diff options
context:
space:
mode:
authorBhasker Hariharan <bhaskerh@google.com>2018-11-09 14:37:42 -0800
committerShentubot <shentubot@google.com>2018-11-09 14:38:46 -0800
commit33089561b1d53dada959a312ab69574cd6635b4b (patch)
tree7b497da71c6c238eafe4faf49bb2a9bbb0b4cddf /pkg/tcpip/stack
parent93e88760b0d0c9c6656f7773f68540b1853d169b (diff)
Add an implementation of a SACK scoreboard as per RFC6675.
PiperOrigin-RevId: 220866996 Change-Id: I89d48215df57c00d6a6ec512fc18712a2ea9080b
Diffstat (limited to 'pkg/tcpip/stack')
-rw-r--r--pkg/tcpip/stack/stack.go12
1 files changed, 10 insertions, 2 deletions
diff --git a/pkg/tcpip/stack/stack.go b/pkg/tcpip/stack/stack.go
index d4da980a9..7af343fba 100644
--- a/pkg/tcpip/stack/stack.go
+++ b/pkg/tcpip/stack/stack.go
@@ -200,9 +200,17 @@ type TCPSenderState struct {
// TCPSACKInfo holds TCP SACK related information for a given TCP endpoint.
type TCPSACKInfo struct {
- // Blocks is the list of SACK block currently received by the
- // TCP endpoint.
+ // Blocks is the list of SACK Blocks that identify the out of order segments
+ // held by a given TCP endpoint.
Blocks []header.SACKBlock
+
+ // ReceivedBlocks are the SACK blocks received by this endpoint
+ // from the peer endpoint.
+ ReceivedBlocks []header.SACKBlock
+
+ // MaxSACKED is the highest sequence number that has been SACKED
+ // by the peer.
+ MaxSACKED seqnum.Value
}
// TCPEndpointState is a copy of the internal state of a TCP endpoint.