blob: a92bec6c56302d6363500f043174bc8107307225 [file] [log] [blame]
// automatically generated by stateify.
package tcp
import (
"gvisor.dev/gvisor/pkg/state"
"gvisor.dev/gvisor/pkg/tcpip/buffer"
)
func (c *cubicState) StateTypeName() string {
return "pkg/tcpip/transport/tcp.cubicState"
}
func (c *cubicState) StateFields() []string {
return []string{
"wLastMax",
"wMax",
"t",
"numCongestionEvents",
"c",
"k",
"beta",
"wC",
"wEst",
"s",
}
}
func (c *cubicState) beforeSave() {}
// +checklocksignore
func (c *cubicState) StateSave(stateSinkObject state.Sink) {
c.beforeSave()
var tValue unixTime = c.saveT()
stateSinkObject.SaveValue(2, tValue)
stateSinkObject.Save(0, &c.wLastMax)
stateSinkObject.Save(1, &c.wMax)
stateSinkObject.Save(3, &c.numCongestionEvents)
stateSinkObject.Save(4, &c.c)
stateSinkObject.Save(5, &c.k)
stateSinkObject.Save(6, &c.beta)
stateSinkObject.Save(7, &c.wC)
stateSinkObject.Save(8, &c.wEst)
stateSinkObject.Save(9, &c.s)
}
func (c *cubicState) afterLoad() {}
// +checklocksignore
func (c *cubicState) StateLoad(stateSourceObject state.Source) {
stateSourceObject.Load(0, &c.wLastMax)
stateSourceObject.Load(1, &c.wMax)
stateSourceObject.Load(3, &c.numCongestionEvents)
stateSourceObject.Load(4, &c.c)
stateSourceObject.Load(5, &c.k)
stateSourceObject.Load(6, &c.beta)
stateSourceObject.Load(7, &c.wC)
stateSourceObject.Load(8, &c.wEst)
stateSourceObject.Load(9, &c.s)
stateSourceObject.LoadValue(2, new(unixTime), func(y interface{}) { c.loadT(y.(unixTime)) })
}
func (s *SACKInfo) StateTypeName() string {
return "pkg/tcpip/transport/tcp.SACKInfo"
}
func (s *SACKInfo) StateFields() []string {
return []string{
"Blocks",
"NumBlocks",
}
}
func (s *SACKInfo) beforeSave() {}
// +checklocksignore
func (s *SACKInfo) StateSave(stateSinkObject state.Sink) {
s.beforeSave()
stateSinkObject.Save(0, &s.Blocks)
stateSinkObject.Save(1, &s.NumBlocks)
}
func (s *SACKInfo) afterLoad() {}
// +checklocksignore
func (s *SACKInfo) StateLoad(stateSourceObject state.Source) {
stateSourceObject.Load(0, &s.Blocks)
stateSourceObject.Load(1, &s.NumBlocks)
}
func (r *rcvBufAutoTuneParams) StateTypeName() string {
return "pkg/tcpip/transport/tcp.rcvBufAutoTuneParams"
}
func (r *rcvBufAutoTuneParams) StateFields() []string {
return []string{
"measureTime",
"copied",
"prevCopied",
"rtt",
"rttMeasureSeqNumber",
"rttMeasureTime",
"disabled",
}
}
func (r *rcvBufAutoTuneParams) beforeSave() {}
// +checklocksignore
func (r *rcvBufAutoTuneParams) StateSave(stateSinkObject state.Sink) {
r.beforeSave()
var measureTimeValue unixTime = r.saveMeasureTime()
stateSinkObject.SaveValue(0, measureTimeValue)
var rttMeasureTimeValue unixTime = r.saveRttMeasureTime()
stateSinkObject.SaveValue(5, rttMeasureTimeValue)
stateSinkObject.Save(1, &r.copied)
stateSinkObject.Save(2, &r.prevCopied)
stateSinkObject.Save(3, &r.rtt)
stateSinkObject.Save(4, &r.rttMeasureSeqNumber)
stateSinkObject.Save(6, &r.disabled)
}
func (r *rcvBufAutoTuneParams) afterLoad() {}
// +checklocksignore
func (r *rcvBufAutoTuneParams) StateLoad(stateSourceObject state.Source) {
stateSourceObject.Load(1, &r.copied)
stateSourceObject.Load(2, &r.prevCopied)
stateSourceObject.Load(3, &r.rtt)
stateSourceObject.Load(4, &r.rttMeasureSeqNumber)
stateSourceObject.Load(6, &r.disabled)
stateSourceObject.LoadValue(0, new(unixTime), func(y interface{}) { r.loadMeasureTime(y.(unixTime)) })
stateSourceObject.LoadValue(5, new(unixTime), func(y interface{}) { r.loadRttMeasureTime(y.(unixTime)) })
}
func (e *EndpointInfo) StateTypeName() string {
return "pkg/tcpip/transport/tcp.EndpointInfo"
}
func (e *EndpointInfo) StateFields() []string {
return []string{
"TransportEndpointInfo",
}
}
func (e *EndpointInfo) beforeSave() {}
// +checklocksignore
func (e *EndpointInfo) StateSave(stateSinkObject state.Sink) {
e.beforeSave()
stateSinkObject.Save(0, &e.TransportEndpointInfo)
}
func (e *EndpointInfo) afterLoad() {}
// +checklocksignore
func (e *EndpointInfo) StateLoad(stateSourceObject state.Source) {
stateSourceObject.Load(0, &e.TransportEndpointInfo)
}
func (e *endpoint) StateTypeName() string {
return "pkg/tcpip/transport/tcp.endpoint"
}
func (e *endpoint) StateFields() []string {
return []string{
"EndpointInfo",
"DefaultSocketOptionsHandler",
"waiterQueue",
"uniqueID",
"hardError",
"lastError",
"rcvList",
"rcvClosed",
"rcvBufSize",
"rcvBufUsed",
"rcvAutoParams",
"rcvMemUsed",
"ownedByUser",
"state",
"boundNICID",
"ttl",
"isConnectNotified",
"portFlags",
"boundBindToDevice",
"boundPortFlags",
"boundDest",
"effectiveNetProtos",
"workerRunning",
"workerCleanup",
"sendTSOk",
"recentTS",
"recentTSTime",
"tsOffset",
"shutdownFlags",
"tcpRecovery",
"sackPermitted",
"sack",
"delay",
"scoreboard",
"segmentQueue",
"synRcvdCount",
"userMSS",
"maxSynRetries",
"windowClamp",
"sndBufUsed",
"sndClosed",
"sndBufInQueue",
"sndQueue",
"cc",
"packetTooBigCount",
"sndMTU",
"keepalive",
"userTimeout",
"deferAccept",
"acceptedChan",
"rcv",
"snd",
"connectingAddress",
"amss",
"sendTOS",
"gso",
"tcpLingerTimeout",
"closed",
"txHash",
"owner",
"ops",
"lastOutOfWindowAckTime",
}
}
// +checklocksignore
func (e *endpoint) StateSave(stateSinkObject state.Sink) {
e.beforeSave()
var stateValue EndpointState = e.saveState()
stateSinkObject.SaveValue(13, stateValue)
var recentTSTimeValue unixTime = e.saveRecentTSTime()
stateSinkObject.SaveValue(26, recentTSTimeValue)
var acceptedChanValue []*endpoint = e.saveAcceptedChan()
stateSinkObject.SaveValue(49, acceptedChanValue)
var lastOutOfWindowAckTimeValue unixTime = e.saveLastOutOfWindowAckTime()
stateSinkObject.SaveValue(61, lastOutOfWindowAckTimeValue)
stateSinkObject.Save(0, &e.EndpointInfo)
stateSinkObject.Save(1, &e.DefaultSocketOptionsHandler)
stateSinkObject.Save(2, &e.waiterQueue)
stateSinkObject.Save(3, &e.uniqueID)
stateSinkObject.Save(4, &e.hardError)
stateSinkObject.Save(5, &e.lastError)
stateSinkObject.Save(6, &e.rcvList)
stateSinkObject.Save(7, &e.rcvClosed)
stateSinkObject.Save(8, &e.rcvBufSize)
stateSinkObject.Save(9, &e.rcvBufUsed)
stateSinkObject.Save(10, &e.rcvAutoParams)
stateSinkObject.Save(11, &e.rcvMemUsed)
stateSinkObject.Save(12, &e.ownedByUser)
stateSinkObject.Save(14, &e.boundNICID)
stateSinkObject.Save(15, &e.ttl)
stateSinkObject.Save(16, &e.isConnectNotified)
stateSinkObject.Save(17, &e.portFlags)
stateSinkObject.Save(18, &e.boundBindToDevice)
stateSinkObject.Save(19, &e.boundPortFlags)
stateSinkObject.Save(20, &e.boundDest)
stateSinkObject.Save(21, &e.effectiveNetProtos)
stateSinkObject.Save(22, &e.workerRunning)
stateSinkObject.Save(23, &e.workerCleanup)
stateSinkObject.Save(24, &e.sendTSOk)
stateSinkObject.Save(25, &e.recentTS)
stateSinkObject.Save(27, &e.tsOffset)
stateSinkObject.Save(28, &e.shutdownFlags)
stateSinkObject.Save(29, &e.tcpRecovery)
stateSinkObject.Save(30, &e.sackPermitted)
stateSinkObject.Save(31, &e.sack)
stateSinkObject.Save(32, &e.delay)
stateSinkObject.Save(33, &e.scoreboard)
stateSinkObject.Save(34, &e.segmentQueue)
stateSinkObject.Save(35, &e.synRcvdCount)
stateSinkObject.Save(36, &e.userMSS)
stateSinkObject.Save(37, &e.maxSynRetries)
stateSinkObject.Save(38, &e.windowClamp)
stateSinkObject.Save(39, &e.sndBufUsed)
stateSinkObject.Save(40, &e.sndClosed)
stateSinkObject.Save(41, &e.sndBufInQueue)
stateSinkObject.Save(42, &e.sndQueue)
stateSinkObject.Save(43, &e.cc)
stateSinkObject.Save(44, &e.packetTooBigCount)
stateSinkObject.Save(45, &e.sndMTU)
stateSinkObject.Save(46, &e.keepalive)
stateSinkObject.Save(47, &e.userTimeout)
stateSinkObject.Save(48, &e.deferAccept)
stateSinkObject.Save(50, &e.rcv)
stateSinkObject.Save(51, &e.snd)
stateSinkObject.Save(52, &e.connectingAddress)
stateSinkObject.Save(53, &e.amss)
stateSinkObject.Save(54, &e.sendTOS)
stateSinkObject.Save(55, &e.gso)
stateSinkObject.Save(56, &e.tcpLingerTimeout)
stateSinkObject.Save(57, &e.closed)
stateSinkObject.Save(58, &e.txHash)
stateSinkObject.Save(59, &e.owner)
stateSinkObject.Save(60, &e.ops)
}
// +checklocksignore
func (e *endpoint) StateLoad(stateSourceObject state.Source) {
stateSourceObject.Load(0, &e.EndpointInfo)
stateSourceObject.Load(1, &e.DefaultSocketOptionsHandler)
stateSourceObject.LoadWait(2, &e.waiterQueue)
stateSourceObject.Load(3, &e.uniqueID)
stateSourceObject.Load(4, &e.hardError)
stateSourceObject.Load(5, &e.lastError)
stateSourceObject.LoadWait(6, &e.rcvList)
stateSourceObject.Load(7, &e.rcvClosed)
stateSourceObject.Load(8, &e.rcvBufSize)
stateSourceObject.Load(9, &e.rcvBufUsed)
stateSourceObject.Load(10, &e.rcvAutoParams)
stateSourceObject.Load(11, &e.rcvMemUsed)
stateSourceObject.Load(12, &e.ownedByUser)
stateSourceObject.Load(14, &e.boundNICID)
stateSourceObject.Load(15, &e.ttl)
stateSourceObject.Load(16, &e.isConnectNotified)
stateSourceObject.Load(17, &e.portFlags)
stateSourceObject.Load(18, &e.boundBindToDevice)
stateSourceObject.Load(19, &e.boundPortFlags)
stateSourceObject.Load(20, &e.boundDest)
stateSourceObject.Load(21, &e.effectiveNetProtos)
stateSourceObject.Load(22, &e.workerRunning)
stateSourceObject.Load(23, &e.workerCleanup)
stateSourceObject.Load(24, &e.sendTSOk)
stateSourceObject.Load(25, &e.recentTS)
stateSourceObject.Load(27, &e.tsOffset)
stateSourceObject.Load(28, &e.shutdownFlags)
stateSourceObject.Load(29, &e.tcpRecovery)
stateSourceObject.Load(30, &e.sackPermitted)
stateSourceObject.Load(31, &e.sack)
stateSourceObject.Load(32, &e.delay)
stateSourceObject.Load(33, &e.scoreboard)
stateSourceObject.LoadWait(34, &e.segmentQueue)
stateSourceObject.Load(35, &e.synRcvdCount)
stateSourceObject.Load(36, &e.userMSS)
stateSourceObject.Load(37, &e.maxSynRetries)
stateSourceObject.Load(38, &e.windowClamp)
stateSourceObject.Load(39, &e.sndBufUsed)
stateSourceObject.Load(40, &e.sndClosed)
stateSourceObject.Load(41, &e.sndBufInQueue)
stateSourceObject.LoadWait(42, &e.sndQueue)
stateSourceObject.Load(43, &e.cc)
stateSourceObject.Load(44, &e.packetTooBigCount)
stateSourceObject.Load(45, &e.sndMTU)
stateSourceObject.Load(46, &e.keepalive)
stateSourceObject.Load(47, &e.userTimeout)
stateSourceObject.Load(48, &e.deferAccept)
stateSourceObject.LoadWait(50, &e.rcv)
stateSourceObject.LoadWait(51, &e.snd)
stateSourceObject.Load(52, &e.connectingAddress)
stateSourceObject.Load(53, &e.amss)
stateSourceObject.Load(54, &e.sendTOS)
stateSourceObject.Load(55, &e.gso)
stateSourceObject.Load(56, &e.tcpLingerTimeout)
stateSourceObject.Load(57, &e.closed)
stateSourceObject.Load(58, &e.txHash)
stateSourceObject.Load(59, &e.owner)
stateSourceObject.Load(60, &e.ops)
stateSourceObject.LoadValue(13, new(EndpointState), func(y interface{}) { e.loadState(y.(EndpointState)) })
stateSourceObject.LoadValue(26, new(unixTime), func(y interface{}) { e.loadRecentTSTime(y.(unixTime)) })
stateSourceObject.LoadValue(49, new([]*endpoint), func(y interface{}) { e.loadAcceptedChan(y.([]*endpoint)) })
stateSourceObject.LoadValue(61, new(unixTime), func(y interface{}) { e.loadLastOutOfWindowAckTime(y.(unixTime)) })
stateSourceObject.AfterLoad(e.afterLoad)
}
func (k *keepalive) StateTypeName() string {
return "pkg/tcpip/transport/tcp.keepalive"
}
func (k *keepalive) StateFields() []string {
return []string{
"idle",
"interval",
"count",
"unacked",
}
}
func (k *keepalive) beforeSave() {}
// +checklocksignore
func (k *keepalive) StateSave(stateSinkObject state.Sink) {
k.beforeSave()
stateSinkObject.Save(0, &k.idle)
stateSinkObject.Save(1, &k.interval)
stateSinkObject.Save(2, &k.count)
stateSinkObject.Save(3, &k.unacked)
}
func (k *keepalive) afterLoad() {}
// +checklocksignore
func (k *keepalive) StateLoad(stateSourceObject state.Source) {
stateSourceObject.Load(0, &k.idle)
stateSourceObject.Load(1, &k.interval)
stateSourceObject.Load(2, &k.count)
stateSourceObject.Load(3, &k.unacked)
}
func (rc *rackControl) StateTypeName() string {
return "pkg/tcpip/transport/tcp.rackControl"
}
func (rc *rackControl) StateFields() []string {
return []string{
"dsackSeen",
"endSequence",
"exitedRecovery",
"fack",
"minRTT",
"reorderSeen",
"reoWnd",
"reoWndIncr",
"reoWndPersist",
"rtt",
"rttSeq",
"xmitTime",
"tlpRxtOut",
"tlpHighRxt",
"snd",
}
}
func (rc *rackControl) beforeSave() {}
// +checklocksignore
func (rc *rackControl) StateSave(stateSinkObject state.Sink) {
rc.beforeSave()
var xmitTimeValue unixTime = rc.saveXmitTime()
stateSinkObject.SaveValue(11, xmitTimeValue)
stateSinkObject.Save(0, &rc.dsackSeen)
stateSinkObject.Save(1, &rc.endSequence)
stateSinkObject.Save(2, &rc.exitedRecovery)
stateSinkObject.Save(3, &rc.fack)
stateSinkObject.Save(4, &rc.minRTT)
stateSinkObject.Save(5, &rc.reorderSeen)
stateSinkObject.Save(6, &rc.reoWnd)
stateSinkObject.Save(7, &rc.reoWndIncr)
stateSinkObject.Save(8, &rc.reoWndPersist)
stateSinkObject.Save(9, &rc.rtt)
stateSinkObject.Save(10, &rc.rttSeq)
stateSinkObject.Save(12, &rc.tlpRxtOut)
stateSinkObject.Save(13, &rc.tlpHighRxt)
stateSinkObject.Save(14, &rc.snd)
}
func (rc *rackControl) afterLoad() {}
// +checklocksignore
func (rc *rackControl) StateLoad(stateSourceObject state.Source) {
stateSourceObject.Load(0, &rc.dsackSeen)
stateSourceObject.Load(1, &rc.endSequence)
stateSourceObject.Load(2, &rc.exitedRecovery)
stateSourceObject.Load(3, &rc.fack)
stateSourceObject.Load(4, &rc.minRTT)
stateSourceObject.Load(5, &rc.reorderSeen)
stateSourceObject.Load(6, &rc.reoWnd)
stateSourceObject.Load(7, &rc.reoWndIncr)
stateSourceObject.Load(8, &rc.reoWndPersist)
stateSourceObject.Load(9, &rc.rtt)
stateSourceObject.Load(10, &rc.rttSeq)
stateSourceObject.Load(12, &rc.tlpRxtOut)
stateSourceObject.Load(13, &rc.tlpHighRxt)
stateSourceObject.Load(14, &rc.snd)
stateSourceObject.LoadValue(11, new(unixTime), func(y interface{}) { rc.loadXmitTime(y.(unixTime)) })
}
func (r *receiver) StateTypeName() string {
return "pkg/tcpip/transport/tcp.receiver"
}
func (r *receiver) StateFields() []string {
return []string{
"ep",
"rcvNxt",
"rcvAcc",
"rcvWnd",
"rcvWUP",
"rcvWndScale",
"prevBufUsed",
"closed",
"pendingRcvdSegments",
"pendingBufUsed",
"lastRcvdAckTime",
}
}
func (r *receiver) beforeSave() {}
// +checklocksignore
func (r *receiver) StateSave(stateSinkObject state.Sink) {
r.beforeSave()
var lastRcvdAckTimeValue unixTime = r.saveLastRcvdAckTime()
stateSinkObject.SaveValue(10, lastRcvdAckTimeValue)
stateSinkObject.Save(0, &r.ep)
stateSinkObject.Save(1, &r.rcvNxt)
stateSinkObject.Save(2, &r.rcvAcc)
stateSinkObject.Save(3, &r.rcvWnd)
stateSinkObject.Save(4, &r.rcvWUP)
stateSinkObject.Save(5, &r.rcvWndScale)
stateSinkObject.Save(6, &r.prevBufUsed)
stateSinkObject.Save(7, &r.closed)
stateSinkObject.Save(8, &r.pendingRcvdSegments)
stateSinkObject.Save(9, &r.pendingBufUsed)
}
func (r *receiver) afterLoad() {}
// +checklocksignore
func (r *receiver) StateLoad(stateSourceObject state.Source) {
stateSourceObject.Load(0, &r.ep)
stateSourceObject.Load(1, &r.rcvNxt)
stateSourceObject.Load(2, &r.rcvAcc)
stateSourceObject.Load(3, &r.rcvWnd)
stateSourceObject.Load(4, &r.rcvWUP)
stateSourceObject.Load(5, &r.rcvWndScale)
stateSourceObject.Load(6, &r.prevBufUsed)
stateSourceObject.Load(7, &r.closed)
stateSourceObject.Load(8, &r.pendingRcvdSegments)
stateSourceObject.Load(9, &r.pendingBufUsed)
stateSourceObject.LoadValue(10, new(unixTime), func(y interface{}) { r.loadLastRcvdAckTime(y.(unixTime)) })
}
func (r *renoState) StateTypeName() string {
return "pkg/tcpip/transport/tcp.renoState"
}
func (r *renoState) StateFields() []string {
return []string{
"s",
}
}
func (r *renoState) beforeSave() {}
// +checklocksignore
func (r *renoState) StateSave(stateSinkObject state.Sink) {
r.beforeSave()
stateSinkObject.Save(0, &r.s)
}
func (r *renoState) afterLoad() {}
// +checklocksignore
func (r *renoState) StateLoad(stateSourceObject state.Source) {
stateSourceObject.Load(0, &r.s)
}
func (rr *renoRecovery) StateTypeName() string {
return "pkg/tcpip/transport/tcp.renoRecovery"
}
func (rr *renoRecovery) StateFields() []string {
return []string{
"s",
}
}
func (rr *renoRecovery) beforeSave() {}
// +checklocksignore
func (rr *renoRecovery) StateSave(stateSinkObject state.Sink) {
rr.beforeSave()
stateSinkObject.Save(0, &rr.s)
}
func (rr *renoRecovery) afterLoad() {}
// +checklocksignore
func (rr *renoRecovery) StateLoad(stateSourceObject state.Source) {
stateSourceObject.Load(0, &rr.s)
}
func (sr *sackRecovery) StateTypeName() string {
return "pkg/tcpip/transport/tcp.sackRecovery"
}
func (sr *sackRecovery) StateFields() []string {
return []string{
"s",
}
}
func (sr *sackRecovery) beforeSave() {}
// +checklocksignore
func (sr *sackRecovery) StateSave(stateSinkObject state.Sink) {
sr.beforeSave()
stateSinkObject.Save(0, &sr.s)
}
func (sr *sackRecovery) afterLoad() {}
// +checklocksignore
func (sr *sackRecovery) StateLoad(stateSourceObject state.Source) {
stateSourceObject.Load(0, &sr.s)
}
func (s *SACKScoreboard) StateTypeName() string {
return "pkg/tcpip/transport/tcp.SACKScoreboard"
}
func (s *SACKScoreboard) StateFields() []string {
return []string{
"smss",
"maxSACKED",
}
}
func (s *SACKScoreboard) beforeSave() {}
// +checklocksignore
func (s *SACKScoreboard) StateSave(stateSinkObject state.Sink) {
s.beforeSave()
stateSinkObject.Save(0, &s.smss)
stateSinkObject.Save(1, &s.maxSACKED)
}
func (s *SACKScoreboard) afterLoad() {}
// +checklocksignore
func (s *SACKScoreboard) StateLoad(stateSourceObject state.Source) {
stateSourceObject.Load(0, &s.smss)
stateSourceObject.Load(1, &s.maxSACKED)
}
func (s *segment) StateTypeName() string {
return "pkg/tcpip/transport/tcp.segment"
}
func (s *segment) StateFields() []string {
return []string{
"segmentEntry",
"refCnt",
"ep",
"qFlags",
"srcAddr",
"dstAddr",
"netProto",
"nicID",
"data",
"hdr",
"sequenceNumber",
"ackNumber",
"flags",
"window",
"csum",
"csumValid",
"parsedOptions",
"options",
"hasNewSACKInfo",
"rcvdTime",
"xmitTime",
"xmitCount",
"acked",
"dataMemSize",
"lost",
}
}
func (s *segment) beforeSave() {}
// +checklocksignore
func (s *segment) StateSave(stateSinkObject state.Sink) {
s.beforeSave()
var dataValue buffer.VectorisedView = s.saveData()
stateSinkObject.SaveValue(8, dataValue)
var optionsValue []byte = s.saveOptions()
stateSinkObject.SaveValue(17, optionsValue)
var rcvdTimeValue unixTime = s.saveRcvdTime()
stateSinkObject.SaveValue(19, rcvdTimeValue)
var xmitTimeValue unixTime = s.saveXmitTime()
stateSinkObject.SaveValue(20, xmitTimeValue)
stateSinkObject.Save(0, &s.segmentEntry)
stateSinkObject.Save(1, &s.refCnt)
stateSinkObject.Save(2, &s.ep)
stateSinkObject.Save(3, &s.qFlags)
stateSinkObject.Save(4, &s.srcAddr)
stateSinkObject.Save(5, &s.dstAddr)
stateSinkObject.Save(6, &s.netProto)
stateSinkObject.Save(7, &s.nicID)
stateSinkObject.Save(9, &s.hdr)
stateSinkObject.Save(10, &s.sequenceNumber)
stateSinkObject.Save(11, &s.ackNumber)
stateSinkObject.Save(12, &s.flags)
stateSinkObject.Save(13, &s.window)
stateSinkObject.Save(14, &s.csum)
stateSinkObject.Save(15, &s.csumValid)
stateSinkObject.Save(16, &s.parsedOptions)
stateSinkObject.Save(18, &s.hasNewSACKInfo)
stateSinkObject.Save(21, &s.xmitCount)
stateSinkObject.Save(22, &s.acked)
stateSinkObject.Save(23, &s.dataMemSize)
stateSinkObject.Save(24, &s.lost)
}
func (s *segment) afterLoad() {}
// +checklocksignore
func (s *segment) StateLoad(stateSourceObject state.Source) {
stateSourceObject.Load(0, &s.segmentEntry)
stateSourceObject.Load(1, &s.refCnt)
stateSourceObject.Load(2, &s.ep)
stateSourceObject.Load(3, &s.qFlags)
stateSourceObject.Load(4, &s.srcAddr)
stateSourceObject.Load(5, &s.dstAddr)
stateSourceObject.Load(6, &s.netProto)
stateSourceObject.Load(7, &s.nicID)
stateSourceObject.Load(9, &s.hdr)
stateSourceObject.Load(10, &s.sequenceNumber)
stateSourceObject.Load(11, &s.ackNumber)
stateSourceObject.Load(12, &s.flags)
stateSourceObject.Load(13, &s.window)
stateSourceObject.Load(14, &s.csum)
stateSourceObject.Load(15, &s.csumValid)
stateSourceObject.Load(16, &s.parsedOptions)
stateSourceObject.Load(18, &s.hasNewSACKInfo)
stateSourceObject.Load(21, &s.xmitCount)
stateSourceObject.Load(22, &s.acked)
stateSourceObject.Load(23, &s.dataMemSize)
stateSourceObject.Load(24, &s.lost)
stateSourceObject.LoadValue(8, new(buffer.VectorisedView), func(y interface{}) { s.loadData(y.(buffer.VectorisedView)) })
stateSourceObject.LoadValue(17, new([]byte), func(y interface{}) { s.loadOptions(y.([]byte)) })
stateSourceObject.LoadValue(19, new(unixTime), func(y interface{}) { s.loadRcvdTime(y.(unixTime)) })
stateSourceObject.LoadValue(20, new(unixTime), func(y interface{}) { s.loadXmitTime(y.(unixTime)) })
}
func (q *segmentQueue) StateTypeName() string {
return "pkg/tcpip/transport/tcp.segmentQueue"
}
func (q *segmentQueue) StateFields() []string {
return []string{
"list",
"ep",
"frozen",
}
}
func (q *segmentQueue) beforeSave() {}
// +checklocksignore
func (q *segmentQueue) StateSave(stateSinkObject state.Sink) {
q.beforeSave()
stateSinkObject.Save(0, &q.list)
stateSinkObject.Save(1, &q.ep)
stateSinkObject.Save(2, &q.frozen)
}
func (q *segmentQueue) afterLoad() {}
// +checklocksignore
func (q *segmentQueue) StateLoad(stateSourceObject state.Source) {
stateSourceObject.LoadWait(0, &q.list)
stateSourceObject.Load(1, &q.ep)
stateSourceObject.Load(2, &q.frozen)
}
func (s *sender) StateTypeName() string {
return "pkg/tcpip/transport/tcp.sender"
}
func (s *sender) StateFields() []string {
return []string{
"ep",
"lastSendTime",
"dupAckCount",
"fr",
"lr",
"sndCwnd",
"sndSsthresh",
"sndCAAckCount",
"outstanding",
"sackedOut",
"sndWnd",
"sndUna",
"sndNxt",
"rttMeasureSeqNum",
"rttMeasureTime",
"firstRetransmittedSegXmitTime",
"closed",
"writeNext",
"writeList",
"rtt",
"rto",
"minRTO",
"maxRTO",
"maxRetries",
"maxPayloadSize",
"gso",
"sndWndScale",
"maxSentAck",
"state",
"cc",
"rc",
}
}
func (s *sender) beforeSave() {}
// +checklocksignore
func (s *sender) StateSave(stateSinkObject state.Sink) {
s.beforeSave()
var lastSendTimeValue unixTime = s.saveLastSendTime()
stateSinkObject.SaveValue(1, lastSendTimeValue)
var rttMeasureTimeValue unixTime = s.saveRttMeasureTime()
stateSinkObject.SaveValue(14, rttMeasureTimeValue)
var firstRetransmittedSegXmitTimeValue unixTime = s.saveFirstRetransmittedSegXmitTime()
stateSinkObject.SaveValue(15, firstRetransmittedSegXmitTimeValue)
stateSinkObject.Save(0, &s.ep)
stateSinkObject.Save(2, &s.dupAckCount)
stateSinkObject.Save(3, &s.fr)
stateSinkObject.Save(4, &s.lr)
stateSinkObject.Save(5, &s.sndCwnd)
stateSinkObject.Save(6, &s.sndSsthresh)
stateSinkObject.Save(7, &s.sndCAAckCount)
stateSinkObject.Save(8, &s.outstanding)
stateSinkObject.Save(9, &s.sackedOut)
stateSinkObject.Save(10, &s.sndWnd)
stateSinkObject.Save(11, &s.sndUna)
stateSinkObject.Save(12, &s.sndNxt)
stateSinkObject.Save(13, &s.rttMeasureSeqNum)
stateSinkObject.Save(16, &s.closed)
stateSinkObject.Save(17, &s.writeNext)
stateSinkObject.Save(18, &s.writeList)
stateSinkObject.Save(19, &s.rtt)
stateSinkObject.Save(20, &s.rto)
stateSinkObject.Save(21, &s.minRTO)
stateSinkObject.Save(22, &s.maxRTO)
stateSinkObject.Save(23, &s.maxRetries)
stateSinkObject.Save(24, &s.maxPayloadSize)
stateSinkObject.Save(25, &s.gso)
stateSinkObject.Save(26, &s.sndWndScale)
stateSinkObject.Save(27, &s.maxSentAck)
stateSinkObject.Save(28, &s.state)
stateSinkObject.Save(29, &s.cc)
stateSinkObject.Save(30, &s.rc)
}
// +checklocksignore
func (s *sender) StateLoad(stateSourceObject state.Source) {
stateSourceObject.Load(0, &s.ep)
stateSourceObject.Load(2, &s.dupAckCount)
stateSourceObject.Load(3, &s.fr)
stateSourceObject.Load(4, &s.lr)
stateSourceObject.Load(5, &s.sndCwnd)
stateSourceObject.Load(6, &s.sndSsthresh)
stateSourceObject.Load(7, &s.sndCAAckCount)
stateSourceObject.Load(8, &s.outstanding)
stateSourceObject.Load(9, &s.sackedOut)
stateSourceObject.Load(10, &s.sndWnd)
stateSourceObject.Load(11, &s.sndUna)
stateSourceObject.Load(12, &s.sndNxt)
stateSourceObject.Load(13, &s.rttMeasureSeqNum)
stateSourceObject.Load(16, &s.closed)
stateSourceObject.Load(17, &s.writeNext)
stateSourceObject.Load(18, &s.writeList)
stateSourceObject.Load(19, &s.rtt)
stateSourceObject.Load(20, &s.rto)
stateSourceObject.Load(21, &s.minRTO)
stateSourceObject.Load(22, &s.maxRTO)
stateSourceObject.Load(23, &s.maxRetries)
stateSourceObject.Load(24, &s.maxPayloadSize)
stateSourceObject.Load(25, &s.gso)
stateSourceObject.Load(26, &s.sndWndScale)
stateSourceObject.Load(27, &s.maxSentAck)
stateSourceObject.Load(28, &s.state)
stateSourceObject.Load(29, &s.cc)
stateSourceObject.Load(30, &s.rc)
stateSourceObject.LoadValue(1, new(unixTime), func(y interface{}) { s.loadLastSendTime(y.(unixTime)) })
stateSourceObject.LoadValue(14, new(unixTime), func(y interface{}) { s.loadRttMeasureTime(y.(unixTime)) })
stateSourceObject.LoadValue(15, new(unixTime), func(y interface{}) { s.loadFirstRetransmittedSegXmitTime(y.(unixTime)) })
stateSourceObject.AfterLoad(s.afterLoad)
}
func (r *rtt) StateTypeName() string {
return "pkg/tcpip/transport/tcp.rtt"
}
func (r *rtt) StateFields() []string {
return []string{
"srtt",
"rttvar",
"srttInited",
}
}
func (r *rtt) beforeSave() {}
// +checklocksignore
func (r *rtt) StateSave(stateSinkObject state.Sink) {
r.beforeSave()
stateSinkObject.Save(0, &r.srtt)
stateSinkObject.Save(1, &r.rttvar)
stateSinkObject.Save(2, &r.srttInited)
}
func (r *rtt) afterLoad() {}
// +checklocksignore
func (r *rtt) StateLoad(stateSourceObject state.Source) {
stateSourceObject.Load(0, &r.srtt)
stateSourceObject.Load(1, &r.rttvar)
stateSourceObject.Load(2, &r.srttInited)
}
func (f *fastRecovery) StateTypeName() string {
return "pkg/tcpip/transport/tcp.fastRecovery"
}
func (f *fastRecovery) StateFields() []string {
return []string{
"active",
"first",
"last",
"maxCwnd",
"highRxt",
"rescueRxt",
}
}
func (f *fastRecovery) beforeSave() {}
// +checklocksignore
func (f *fastRecovery) StateSave(stateSinkObject state.Sink) {
f.beforeSave()
stateSinkObject.Save(0, &f.active)
stateSinkObject.Save(1, &f.first)
stateSinkObject.Save(2, &f.last)
stateSinkObject.Save(3, &f.maxCwnd)
stateSinkObject.Save(4, &f.highRxt)
stateSinkObject.Save(5, &f.rescueRxt)
}
func (f *fastRecovery) afterLoad() {}
// +checklocksignore
func (f *fastRecovery) StateLoad(stateSourceObject state.Source) {
stateSourceObject.Load(0, &f.active)
stateSourceObject.Load(1, &f.first)
stateSourceObject.Load(2, &f.last)
stateSourceObject.Load(3, &f.maxCwnd)
stateSourceObject.Load(4, &f.highRxt)
stateSourceObject.Load(5, &f.rescueRxt)
}
func (u *unixTime) StateTypeName() string {
return "pkg/tcpip/transport/tcp.unixTime"
}
func (u *unixTime) StateFields() []string {
return []string{
"second",
"nano",
}
}
func (u *unixTime) beforeSave() {}
// +checklocksignore
func (u *unixTime) StateSave(stateSinkObject state.Sink) {
u.beforeSave()
stateSinkObject.Save(0, &u.second)
stateSinkObject.Save(1, &u.nano)
}
func (u *unixTime) afterLoad() {}
// +checklocksignore
func (u *unixTime) StateLoad(stateSourceObject state.Source) {
stateSourceObject.Load(0, &u.second)
stateSourceObject.Load(1, &u.nano)
}
func (l *endpointList) StateTypeName() string {
return "pkg/tcpip/transport/tcp.endpointList"
}
func (l *endpointList) StateFields() []string {
return []string{
"head",
"tail",
}
}
func (l *endpointList) beforeSave() {}
// +checklocksignore
func (l *endpointList) StateSave(stateSinkObject state.Sink) {
l.beforeSave()
stateSinkObject.Save(0, &l.head)
stateSinkObject.Save(1, &l.tail)
}
func (l *endpointList) afterLoad() {}
// +checklocksignore
func (l *endpointList) StateLoad(stateSourceObject state.Source) {
stateSourceObject.Load(0, &l.head)
stateSourceObject.Load(1, &l.tail)
}
func (e *endpointEntry) StateTypeName() string {
return "pkg/tcpip/transport/tcp.endpointEntry"
}
func (e *endpointEntry) StateFields() []string {
return []string{
"next",
"prev",
}
}
func (e *endpointEntry) beforeSave() {}
// +checklocksignore
func (e *endpointEntry) StateSave(stateSinkObject state.Sink) {
e.beforeSave()
stateSinkObject.Save(0, &e.next)
stateSinkObject.Save(1, &e.prev)
}
func (e *endpointEntry) afterLoad() {}
// +checklocksignore
func (e *endpointEntry) StateLoad(stateSourceObject state.Source) {
stateSourceObject.Load(0, &e.next)
stateSourceObject.Load(1, &e.prev)
}
func (l *segmentList) StateTypeName() string {
return "pkg/tcpip/transport/tcp.segmentList"
}
func (l *segmentList) StateFields() []string {
return []string{
"head",
"tail",
}
}
func (l *segmentList) beforeSave() {}
// +checklocksignore
func (l *segmentList) StateSave(stateSinkObject state.Sink) {
l.beforeSave()
stateSinkObject.Save(0, &l.head)
stateSinkObject.Save(1, &l.tail)
}
func (l *segmentList) afterLoad() {}
// +checklocksignore
func (l *segmentList) StateLoad(stateSourceObject state.Source) {
stateSourceObject.Load(0, &l.head)
stateSourceObject.Load(1, &l.tail)
}
func (e *segmentEntry) StateTypeName() string {
return "pkg/tcpip/transport/tcp.segmentEntry"
}
func (e *segmentEntry) StateFields() []string {
return []string{
"next",
"prev",
}
}
func (e *segmentEntry) beforeSave() {}
// +checklocksignore
func (e *segmentEntry) StateSave(stateSinkObject state.Sink) {
e.beforeSave()
stateSinkObject.Save(0, &e.next)
stateSinkObject.Save(1, &e.prev)
}
func (e *segmentEntry) afterLoad() {}
// +checklocksignore
func (e *segmentEntry) StateLoad(stateSourceObject state.Source) {
stateSourceObject.Load(0, &e.next)
stateSourceObject.Load(1, &e.prev)
}
func init() {
state.Register((*cubicState)(nil))
state.Register((*SACKInfo)(nil))
state.Register((*rcvBufAutoTuneParams)(nil))
state.Register((*EndpointInfo)(nil))
state.Register((*endpoint)(nil))
state.Register((*keepalive)(nil))
state.Register((*rackControl)(nil))
state.Register((*receiver)(nil))
state.Register((*renoState)(nil))
state.Register((*renoRecovery)(nil))
state.Register((*sackRecovery)(nil))
state.Register((*SACKScoreboard)(nil))
state.Register((*segment)(nil))
state.Register((*segmentQueue)(nil))
state.Register((*sender)(nil))
state.Register((*rtt)(nil))
state.Register((*fastRecovery)(nil))
state.Register((*unixTime)(nil))
state.Register((*endpointList)(nil))
state.Register((*endpointEntry)(nil))
state.Register((*segmentList)(nil))
state.Register((*segmentEntry)(nil))
}