diff options
author | gVisor bot <gvisor-bot@google.com> | 2019-08-01 21:34:15 +0000 |
---|---|---|
committer | gVisor bot <gvisor-bot@google.com> | 2019-08-01 21:34:15 +0000 |
commit | fad75173249339f0cf84e5bcdef57e029d40af87 (patch) | |
tree | ca49643f09f6edd080b60e5eeca98aeccef76569 /pkg/tcpip/stack | |
parent | 3d89ab8d2a232f8a72c0ace4c37a638b0e9b6f9a (diff) | |
parent | f2b25aeac7b5ba44144d003fbb2ae657461b8e9b (diff) |
Merge f2b25aea (automated)
Diffstat (limited to 'pkg/tcpip/stack')
-rw-r--r-- | pkg/tcpip/stack/stack.go | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/pkg/tcpip/stack/stack.go b/pkg/tcpip/stack/stack.go index 6156c3f46..7c31cf493 100644 --- a/pkg/tcpip/stack/stack.go +++ b/pkg/tcpip/stack/stack.go @@ -208,6 +208,10 @@ type TCPSenderState struct { // Cubic holds the state related to CUBIC congestion control. Cubic TCPCubicState + + // MSS is the size of the largest segment that can be sent without + // fragmentation. + MSS int } // TCPSACKInfo holds TCP SACK related information for a given TCP endpoint. @@ -220,6 +224,9 @@ type TCPSACKInfo struct { // from the peer endpoint. ReceivedBlocks []header.SACKBlock + // Sacked is the current number of bytes held in the SACK scoreboard. + Sacked seqnum.Size + // MaxSACKED is the highest sequence number that has been SACKED // by the peer. MaxSACKED seqnum.Value @@ -269,6 +276,14 @@ type TCPEndpointState struct { // ID is a copy of the TransportEndpointID for the endpoint. ID TCPEndpointID + // ProtocolState denotes the TCP state the endpoint is currently + // in, encoded in a netstack-specific manner. Should be translated + // to the Linux ABI before exposing to userspace. + ProtocolState uint32 + + // AMSS is the MSS advertised to the peer by this endpoint. + AMSS uint16 + // SegTime denotes the absolute time when this segment was received. SegTime time.Time @@ -286,6 +301,18 @@ type TCPEndpointState struct { // RcvClosed if true, indicates the endpoint has been closed for reading. RcvClosed bool + // RcvLastAck is the time of receipt of the last packet with the + // ACK flag set. + RcvLastAckNanos int64 + + // RcvLastData is the time of reciept of the last packet + // containing data. + RcvLastDataNanos int64 + + // RcvMSS is the size of the largest segment the receiver is willing to + // accept, not including TCP headers and options. + RcvMSS int + // SendTSOk is used to indicate when the TS Option has been negotiated. // When sendTSOk is true every non-RST segment should carry a TS as per // RFC7323#section-1.1. @@ -326,6 +353,9 @@ type TCPEndpointState struct { // SndMTU is the smallest MTU seen in the control packets received. SndMTU int + // MaxOptionSize is the maximum size of TCP options. + MaxOptionSize int + // Receiver holds variables related to the TCP receiver for the endpoint. Receiver TCPReceiverState |