summaryrefslogtreecommitdiffhomepage
path: root/pkg/tcpip/stack
diff options
context:
space:
mode:
authorgVisor bot <gvisor-bot@google.com>2021-10-07 23:54:51 +0000
committergVisor bot <gvisor-bot@google.com>2021-10-07 23:54:51 +0000
commitfd0024109aac305a161145ce219f936a0b61a0de (patch)
treed0c3fb6e3d83884aa370fd96d0ad961a13663159 /pkg/tcpip/stack
parentfa5f9db6548e8977cbbebc097b702772ec38f276 (diff)
parent487651ac46f302592ccffc9e5a4336a331010e42 (diff)
Merge release-20210927.0-49-g487651ac4 (automated)
Diffstat (limited to 'pkg/tcpip/stack')
-rw-r--r--pkg/tcpip/stack/stack_state_autogen.go6
-rw-r--r--pkg/tcpip/stack/tcp.go6
2 files changed, 12 insertions, 0 deletions
diff --git a/pkg/tcpip/stack/stack_state_autogen.go b/pkg/tcpip/stack/stack_state_autogen.go
index dec8287f9..2d0966fd2 100644
--- a/pkg/tcpip/stack/stack_state_autogen.go
+++ b/pkg/tcpip/stack/stack_state_autogen.go
@@ -871,6 +871,8 @@ func (t *TCPSenderState) StateFields() []string {
"FastRecovery",
"Cubic",
"RACKState",
+ "RetransmitTS",
+ "SpuriousRecovery",
}
}
@@ -900,6 +902,8 @@ func (t *TCPSenderState) StateSave(stateSinkObject state.Sink) {
stateSinkObject.Save(18, &t.FastRecovery)
stateSinkObject.Save(19, &t.Cubic)
stateSinkObject.Save(20, &t.RACKState)
+ stateSinkObject.Save(21, &t.RetransmitTS)
+ stateSinkObject.Save(22, &t.SpuriousRecovery)
}
func (t *TCPSenderState) afterLoad() {}
@@ -927,6 +931,8 @@ func (t *TCPSenderState) StateLoad(stateSourceObject state.Source) {
stateSourceObject.Load(18, &t.FastRecovery)
stateSourceObject.Load(19, &t.Cubic)
stateSourceObject.Load(20, &t.RACKState)
+ stateSourceObject.Load(21, &t.RetransmitTS)
+ stateSourceObject.Load(22, &t.SpuriousRecovery)
}
func (t *TCPSACKInfo) StateTypeName() string {
diff --git a/pkg/tcpip/stack/tcp.go b/pkg/tcpip/stack/tcp.go
index dc7289441..a941091b0 100644
--- a/pkg/tcpip/stack/tcp.go
+++ b/pkg/tcpip/stack/tcp.go
@@ -289,6 +289,12 @@ type TCPSenderState struct {
// RACKState holds the state related to RACK loss detection algorithm.
RACKState TCPRACKState
+
+ // RetransmitTS records the timestamp used to detect spurious recovery.
+ RetransmitTS uint32
+
+ // SpuriousRecovery indicates if the sender entered recovery spuriously.
+ SpuriousRecovery bool
}
// TCPSACKInfo holds TCP SACK related information for a given TCP endpoint.