github.com/nicocha30/gvisor-ligolo@v0.0.0-20230726075806-989fa2c0a413/pkg/tcpip/transport/tcp/tcp_state_autogen.go (about) 1 // automatically generated by stateify. 2 3 package tcp 4 5 import ( 6 "github.com/nicocha30/gvisor-ligolo/pkg/state" 7 ) 8 9 func (a *acceptQueue) StateTypeName() string { 10 return "pkg/tcpip/transport/tcp.acceptQueue" 11 } 12 13 func (a *acceptQueue) StateFields() []string { 14 return []string{ 15 "endpoints", 16 "pendingEndpoints", 17 "capacity", 18 } 19 } 20 21 func (a *acceptQueue) beforeSave() {} 22 23 // +checklocksignore 24 func (a *acceptQueue) StateSave(stateSinkObject state.Sink) { 25 a.beforeSave() 26 var endpointsValue []*endpoint 27 endpointsValue = a.saveEndpoints() 28 stateSinkObject.SaveValue(0, endpointsValue) 29 stateSinkObject.Save(1, &a.pendingEndpoints) 30 stateSinkObject.Save(2, &a.capacity) 31 } 32 33 func (a *acceptQueue) afterLoad() {} 34 35 // +checklocksignore 36 func (a *acceptQueue) StateLoad(stateSourceObject state.Source) { 37 stateSourceObject.Load(1, &a.pendingEndpoints) 38 stateSourceObject.Load(2, &a.capacity) 39 stateSourceObject.LoadValue(0, new([]*endpoint), func(y any) { a.loadEndpoints(y.([]*endpoint)) }) 40 } 41 42 func (h *handshake) StateTypeName() string { 43 return "pkg/tcpip/transport/tcp.handshake" 44 } 45 46 func (h *handshake) StateFields() []string { 47 return []string{ 48 "ep", 49 "listenEP", 50 "state", 51 "active", 52 "flags", 53 "ackNum", 54 "iss", 55 "rcvWnd", 56 "sndWnd", 57 "mss", 58 "sndWndScale", 59 "rcvWndScale", 60 "startTime", 61 "deferAccept", 62 "acked", 63 "sendSYNOpts", 64 "sampleRTTWithTSOnly", 65 } 66 } 67 68 func (h *handshake) beforeSave() {} 69 70 // +checklocksignore 71 func (h *handshake) StateSave(stateSinkObject state.Sink) { 72 h.beforeSave() 73 stateSinkObject.Save(0, &h.ep) 74 stateSinkObject.Save(1, &h.listenEP) 75 stateSinkObject.Save(2, &h.state) 76 stateSinkObject.Save(3, &h.active) 77 stateSinkObject.Save(4, &h.flags) 78 stateSinkObject.Save(5, &h.ackNum) 79 stateSinkObject.Save(6, &h.iss) 80 stateSinkObject.Save(7, &h.rcvWnd) 81 stateSinkObject.Save(8, &h.sndWnd) 82 stateSinkObject.Save(9, &h.mss) 83 stateSinkObject.Save(10, &h.sndWndScale) 84 stateSinkObject.Save(11, &h.rcvWndScale) 85 stateSinkObject.Save(12, &h.startTime) 86 stateSinkObject.Save(13, &h.deferAccept) 87 stateSinkObject.Save(14, &h.acked) 88 stateSinkObject.Save(15, &h.sendSYNOpts) 89 stateSinkObject.Save(16, &h.sampleRTTWithTSOnly) 90 } 91 92 func (h *handshake) afterLoad() {} 93 94 // +checklocksignore 95 func (h *handshake) StateLoad(stateSourceObject state.Source) { 96 stateSourceObject.Load(0, &h.ep) 97 stateSourceObject.Load(1, &h.listenEP) 98 stateSourceObject.Load(2, &h.state) 99 stateSourceObject.Load(3, &h.active) 100 stateSourceObject.Load(4, &h.flags) 101 stateSourceObject.Load(5, &h.ackNum) 102 stateSourceObject.Load(6, &h.iss) 103 stateSourceObject.Load(7, &h.rcvWnd) 104 stateSourceObject.Load(8, &h.sndWnd) 105 stateSourceObject.Load(9, &h.mss) 106 stateSourceObject.Load(10, &h.sndWndScale) 107 stateSourceObject.Load(11, &h.rcvWndScale) 108 stateSourceObject.Load(12, &h.startTime) 109 stateSourceObject.Load(13, &h.deferAccept) 110 stateSourceObject.Load(14, &h.acked) 111 stateSourceObject.Load(15, &h.sendSYNOpts) 112 stateSourceObject.Load(16, &h.sampleRTTWithTSOnly) 113 } 114 115 func (c *cubicState) StateTypeName() string { 116 return "pkg/tcpip/transport/tcp.cubicState" 117 } 118 119 func (c *cubicState) StateFields() []string { 120 return []string{ 121 "TCPCubicState", 122 "numCongestionEvents", 123 "s", 124 } 125 } 126 127 func (c *cubicState) beforeSave() {} 128 129 // +checklocksignore 130 func (c *cubicState) StateSave(stateSinkObject state.Sink) { 131 c.beforeSave() 132 stateSinkObject.Save(0, &c.TCPCubicState) 133 stateSinkObject.Save(1, &c.numCongestionEvents) 134 stateSinkObject.Save(2, &c.s) 135 } 136 137 func (c *cubicState) afterLoad() {} 138 139 // +checklocksignore 140 func (c *cubicState) StateLoad(stateSourceObject state.Source) { 141 stateSourceObject.Load(0, &c.TCPCubicState) 142 stateSourceObject.Load(1, &c.numCongestionEvents) 143 stateSourceObject.Load(2, &c.s) 144 } 145 146 func (s *SACKInfo) StateTypeName() string { 147 return "pkg/tcpip/transport/tcp.SACKInfo" 148 } 149 150 func (s *SACKInfo) StateFields() []string { 151 return []string{ 152 "Blocks", 153 "NumBlocks", 154 } 155 } 156 157 func (s *SACKInfo) beforeSave() {} 158 159 // +checklocksignore 160 func (s *SACKInfo) StateSave(stateSinkObject state.Sink) { 161 s.beforeSave() 162 stateSinkObject.Save(0, &s.Blocks) 163 stateSinkObject.Save(1, &s.NumBlocks) 164 } 165 166 func (s *SACKInfo) afterLoad() {} 167 168 // +checklocksignore 169 func (s *SACKInfo) StateLoad(stateSourceObject state.Source) { 170 stateSourceObject.Load(0, &s.Blocks) 171 stateSourceObject.Load(1, &s.NumBlocks) 172 } 173 174 func (r *ReceiveErrors) StateTypeName() string { 175 return "pkg/tcpip/transport/tcp.ReceiveErrors" 176 } 177 178 func (r *ReceiveErrors) StateFields() []string { 179 return []string{ 180 "ReceiveErrors", 181 "SegmentQueueDropped", 182 "ChecksumErrors", 183 "ListenOverflowSynDrop", 184 "ListenOverflowAckDrop", 185 "ZeroRcvWindowState", 186 "WantZeroRcvWindow", 187 } 188 } 189 190 func (r *ReceiveErrors) beforeSave() {} 191 192 // +checklocksignore 193 func (r *ReceiveErrors) StateSave(stateSinkObject state.Sink) { 194 r.beforeSave() 195 stateSinkObject.Save(0, &r.ReceiveErrors) 196 stateSinkObject.Save(1, &r.SegmentQueueDropped) 197 stateSinkObject.Save(2, &r.ChecksumErrors) 198 stateSinkObject.Save(3, &r.ListenOverflowSynDrop) 199 stateSinkObject.Save(4, &r.ListenOverflowAckDrop) 200 stateSinkObject.Save(5, &r.ZeroRcvWindowState) 201 stateSinkObject.Save(6, &r.WantZeroRcvWindow) 202 } 203 204 func (r *ReceiveErrors) afterLoad() {} 205 206 // +checklocksignore 207 func (r *ReceiveErrors) StateLoad(stateSourceObject state.Source) { 208 stateSourceObject.Load(0, &r.ReceiveErrors) 209 stateSourceObject.Load(1, &r.SegmentQueueDropped) 210 stateSourceObject.Load(2, &r.ChecksumErrors) 211 stateSourceObject.Load(3, &r.ListenOverflowSynDrop) 212 stateSourceObject.Load(4, &r.ListenOverflowAckDrop) 213 stateSourceObject.Load(5, &r.ZeroRcvWindowState) 214 stateSourceObject.Load(6, &r.WantZeroRcvWindow) 215 } 216 217 func (s *SendErrors) StateTypeName() string { 218 return "pkg/tcpip/transport/tcp.SendErrors" 219 } 220 221 func (s *SendErrors) StateFields() []string { 222 return []string{ 223 "SendErrors", 224 "SegmentSendToNetworkFailed", 225 "SynSendToNetworkFailed", 226 "Retransmits", 227 "FastRetransmit", 228 "Timeouts", 229 } 230 } 231 232 func (s *SendErrors) beforeSave() {} 233 234 // +checklocksignore 235 func (s *SendErrors) StateSave(stateSinkObject state.Sink) { 236 s.beforeSave() 237 stateSinkObject.Save(0, &s.SendErrors) 238 stateSinkObject.Save(1, &s.SegmentSendToNetworkFailed) 239 stateSinkObject.Save(2, &s.SynSendToNetworkFailed) 240 stateSinkObject.Save(3, &s.Retransmits) 241 stateSinkObject.Save(4, &s.FastRetransmit) 242 stateSinkObject.Save(5, &s.Timeouts) 243 } 244 245 func (s *SendErrors) afterLoad() {} 246 247 // +checklocksignore 248 func (s *SendErrors) StateLoad(stateSourceObject state.Source) { 249 stateSourceObject.Load(0, &s.SendErrors) 250 stateSourceObject.Load(1, &s.SegmentSendToNetworkFailed) 251 stateSourceObject.Load(2, &s.SynSendToNetworkFailed) 252 stateSourceObject.Load(3, &s.Retransmits) 253 stateSourceObject.Load(4, &s.FastRetransmit) 254 stateSourceObject.Load(5, &s.Timeouts) 255 } 256 257 func (s *Stats) StateTypeName() string { 258 return "pkg/tcpip/transport/tcp.Stats" 259 } 260 261 func (s *Stats) StateFields() []string { 262 return []string{ 263 "SegmentsReceived", 264 "SegmentsSent", 265 "FailedConnectionAttempts", 266 "ReceiveErrors", 267 "ReadErrors", 268 "SendErrors", 269 "WriteErrors", 270 } 271 } 272 273 func (s *Stats) beforeSave() {} 274 275 // +checklocksignore 276 func (s *Stats) StateSave(stateSinkObject state.Sink) { 277 s.beforeSave() 278 stateSinkObject.Save(0, &s.SegmentsReceived) 279 stateSinkObject.Save(1, &s.SegmentsSent) 280 stateSinkObject.Save(2, &s.FailedConnectionAttempts) 281 stateSinkObject.Save(3, &s.ReceiveErrors) 282 stateSinkObject.Save(4, &s.ReadErrors) 283 stateSinkObject.Save(5, &s.SendErrors) 284 stateSinkObject.Save(6, &s.WriteErrors) 285 } 286 287 func (s *Stats) afterLoad() {} 288 289 // +checklocksignore 290 func (s *Stats) StateLoad(stateSourceObject state.Source) { 291 stateSourceObject.Load(0, &s.SegmentsReceived) 292 stateSourceObject.Load(1, &s.SegmentsSent) 293 stateSourceObject.Load(2, &s.FailedConnectionAttempts) 294 stateSourceObject.Load(3, &s.ReceiveErrors) 295 stateSourceObject.Load(4, &s.ReadErrors) 296 stateSourceObject.Load(5, &s.SendErrors) 297 stateSourceObject.Load(6, &s.WriteErrors) 298 } 299 300 func (sq *sndQueueInfo) StateTypeName() string { 301 return "pkg/tcpip/transport/tcp.sndQueueInfo" 302 } 303 304 func (sq *sndQueueInfo) StateFields() []string { 305 return []string{ 306 "TCPSndBufState", 307 } 308 } 309 310 func (sq *sndQueueInfo) beforeSave() {} 311 312 // +checklocksignore 313 func (sq *sndQueueInfo) StateSave(stateSinkObject state.Sink) { 314 sq.beforeSave() 315 stateSinkObject.Save(0, &sq.TCPSndBufState) 316 } 317 318 func (sq *sndQueueInfo) afterLoad() {} 319 320 // +checklocksignore 321 func (sq *sndQueueInfo) StateLoad(stateSourceObject state.Source) { 322 stateSourceObject.Load(0, &sq.TCPSndBufState) 323 } 324 325 func (e *endpoint) StateTypeName() string { 326 return "pkg/tcpip/transport/tcp.endpoint" 327 } 328 329 func (e *endpoint) StateFields() []string { 330 return []string{ 331 "TCPEndpointStateInner", 332 "TransportEndpointInfo", 333 "DefaultSocketOptionsHandler", 334 "waiterQueue", 335 "uniqueID", 336 "hardError", 337 "lastError", 338 "TCPRcvBufState", 339 "rcvMemUsed", 340 "ownedByUser", 341 "rcvQueue", 342 "state", 343 "connectionDirectionState", 344 "boundNICID", 345 "ipv4TTL", 346 "ipv6HopLimit", 347 "isConnectNotified", 348 "h", 349 "portFlags", 350 "boundBindToDevice", 351 "boundPortFlags", 352 "boundDest", 353 "effectiveNetProtos", 354 "recentTSTime", 355 "shutdownFlags", 356 "tcpRecovery", 357 "sack", 358 "delay", 359 "scoreboard", 360 "segmentQueue", 361 "userMSS", 362 "maxSynRetries", 363 "windowClamp", 364 "sndQueueInfo", 365 "cc", 366 "keepalive", 367 "userTimeout", 368 "deferAccept", 369 "acceptQueue", 370 "rcv", 371 "snd", 372 "connectingAddress", 373 "amss", 374 "sendTOS", 375 "gso", 376 "stats", 377 "tcpLingerTimeout", 378 "closed", 379 "txHash", 380 "owner", 381 "ops", 382 "lastOutOfWindowAckTime", 383 } 384 } 385 386 // +checklocksignore 387 func (e *endpoint) StateSave(stateSinkObject state.Sink) { 388 e.beforeSave() 389 var stateValue EndpointState 390 stateValue = e.saveState() 391 stateSinkObject.SaveValue(11, stateValue) 392 stateSinkObject.Save(0, &e.TCPEndpointStateInner) 393 stateSinkObject.Save(1, &e.TransportEndpointInfo) 394 stateSinkObject.Save(2, &e.DefaultSocketOptionsHandler) 395 stateSinkObject.Save(3, &e.waiterQueue) 396 stateSinkObject.Save(4, &e.uniqueID) 397 stateSinkObject.Save(5, &e.hardError) 398 stateSinkObject.Save(6, &e.lastError) 399 stateSinkObject.Save(7, &e.TCPRcvBufState) 400 stateSinkObject.Save(8, &e.rcvMemUsed) 401 stateSinkObject.Save(9, &e.ownedByUser) 402 stateSinkObject.Save(10, &e.rcvQueue) 403 stateSinkObject.Save(12, &e.connectionDirectionState) 404 stateSinkObject.Save(13, &e.boundNICID) 405 stateSinkObject.Save(14, &e.ipv4TTL) 406 stateSinkObject.Save(15, &e.ipv6HopLimit) 407 stateSinkObject.Save(16, &e.isConnectNotified) 408 stateSinkObject.Save(17, &e.h) 409 stateSinkObject.Save(18, &e.portFlags) 410 stateSinkObject.Save(19, &e.boundBindToDevice) 411 stateSinkObject.Save(20, &e.boundPortFlags) 412 stateSinkObject.Save(21, &e.boundDest) 413 stateSinkObject.Save(22, &e.effectiveNetProtos) 414 stateSinkObject.Save(23, &e.recentTSTime) 415 stateSinkObject.Save(24, &e.shutdownFlags) 416 stateSinkObject.Save(25, &e.tcpRecovery) 417 stateSinkObject.Save(26, &e.sack) 418 stateSinkObject.Save(27, &e.delay) 419 stateSinkObject.Save(28, &e.scoreboard) 420 stateSinkObject.Save(29, &e.segmentQueue) 421 stateSinkObject.Save(30, &e.userMSS) 422 stateSinkObject.Save(31, &e.maxSynRetries) 423 stateSinkObject.Save(32, &e.windowClamp) 424 stateSinkObject.Save(33, &e.sndQueueInfo) 425 stateSinkObject.Save(34, &e.cc) 426 stateSinkObject.Save(35, &e.keepalive) 427 stateSinkObject.Save(36, &e.userTimeout) 428 stateSinkObject.Save(37, &e.deferAccept) 429 stateSinkObject.Save(38, &e.acceptQueue) 430 stateSinkObject.Save(39, &e.rcv) 431 stateSinkObject.Save(40, &e.snd) 432 stateSinkObject.Save(41, &e.connectingAddress) 433 stateSinkObject.Save(42, &e.amss) 434 stateSinkObject.Save(43, &e.sendTOS) 435 stateSinkObject.Save(44, &e.gso) 436 stateSinkObject.Save(45, &e.stats) 437 stateSinkObject.Save(46, &e.tcpLingerTimeout) 438 stateSinkObject.Save(47, &e.closed) 439 stateSinkObject.Save(48, &e.txHash) 440 stateSinkObject.Save(49, &e.owner) 441 stateSinkObject.Save(50, &e.ops) 442 stateSinkObject.Save(51, &e.lastOutOfWindowAckTime) 443 } 444 445 // +checklocksignore 446 func (e *endpoint) StateLoad(stateSourceObject state.Source) { 447 stateSourceObject.Load(0, &e.TCPEndpointStateInner) 448 stateSourceObject.Load(1, &e.TransportEndpointInfo) 449 stateSourceObject.Load(2, &e.DefaultSocketOptionsHandler) 450 stateSourceObject.LoadWait(3, &e.waiterQueue) 451 stateSourceObject.Load(4, &e.uniqueID) 452 stateSourceObject.Load(5, &e.hardError) 453 stateSourceObject.Load(6, &e.lastError) 454 stateSourceObject.Load(7, &e.TCPRcvBufState) 455 stateSourceObject.Load(8, &e.rcvMemUsed) 456 stateSourceObject.Load(9, &e.ownedByUser) 457 stateSourceObject.LoadWait(10, &e.rcvQueue) 458 stateSourceObject.Load(12, &e.connectionDirectionState) 459 stateSourceObject.Load(13, &e.boundNICID) 460 stateSourceObject.Load(14, &e.ipv4TTL) 461 stateSourceObject.Load(15, &e.ipv6HopLimit) 462 stateSourceObject.Load(16, &e.isConnectNotified) 463 stateSourceObject.Load(17, &e.h) 464 stateSourceObject.Load(18, &e.portFlags) 465 stateSourceObject.Load(19, &e.boundBindToDevice) 466 stateSourceObject.Load(20, &e.boundPortFlags) 467 stateSourceObject.Load(21, &e.boundDest) 468 stateSourceObject.Load(22, &e.effectiveNetProtos) 469 stateSourceObject.Load(23, &e.recentTSTime) 470 stateSourceObject.Load(24, &e.shutdownFlags) 471 stateSourceObject.Load(25, &e.tcpRecovery) 472 stateSourceObject.Load(26, &e.sack) 473 stateSourceObject.Load(27, &e.delay) 474 stateSourceObject.Load(28, &e.scoreboard) 475 stateSourceObject.LoadWait(29, &e.segmentQueue) 476 stateSourceObject.Load(30, &e.userMSS) 477 stateSourceObject.Load(31, &e.maxSynRetries) 478 stateSourceObject.Load(32, &e.windowClamp) 479 stateSourceObject.Load(33, &e.sndQueueInfo) 480 stateSourceObject.Load(34, &e.cc) 481 stateSourceObject.Load(35, &e.keepalive) 482 stateSourceObject.Load(36, &e.userTimeout) 483 stateSourceObject.Load(37, &e.deferAccept) 484 stateSourceObject.Load(38, &e.acceptQueue) 485 stateSourceObject.LoadWait(39, &e.rcv) 486 stateSourceObject.LoadWait(40, &e.snd) 487 stateSourceObject.Load(41, &e.connectingAddress) 488 stateSourceObject.Load(42, &e.amss) 489 stateSourceObject.Load(43, &e.sendTOS) 490 stateSourceObject.Load(44, &e.gso) 491 stateSourceObject.Load(45, &e.stats) 492 stateSourceObject.Load(46, &e.tcpLingerTimeout) 493 stateSourceObject.Load(47, &e.closed) 494 stateSourceObject.Load(48, &e.txHash) 495 stateSourceObject.Load(49, &e.owner) 496 stateSourceObject.Load(50, &e.ops) 497 stateSourceObject.Load(51, &e.lastOutOfWindowAckTime) 498 stateSourceObject.LoadValue(11, new(EndpointState), func(y any) { e.loadState(y.(EndpointState)) }) 499 stateSourceObject.AfterLoad(e.afterLoad) 500 } 501 502 func (k *keepalive) StateTypeName() string { 503 return "pkg/tcpip/transport/tcp.keepalive" 504 } 505 506 func (k *keepalive) StateFields() []string { 507 return []string{ 508 "idle", 509 "interval", 510 "count", 511 "unacked", 512 } 513 } 514 515 func (k *keepalive) beforeSave() {} 516 517 // +checklocksignore 518 func (k *keepalive) StateSave(stateSinkObject state.Sink) { 519 k.beforeSave() 520 stateSinkObject.Save(0, &k.idle) 521 stateSinkObject.Save(1, &k.interval) 522 stateSinkObject.Save(2, &k.count) 523 stateSinkObject.Save(3, &k.unacked) 524 } 525 526 func (k *keepalive) afterLoad() {} 527 528 // +checklocksignore 529 func (k *keepalive) StateLoad(stateSourceObject state.Source) { 530 stateSourceObject.Load(0, &k.idle) 531 stateSourceObject.Load(1, &k.interval) 532 stateSourceObject.Load(2, &k.count) 533 stateSourceObject.Load(3, &k.unacked) 534 } 535 536 func (rc *rackControl) StateTypeName() string { 537 return "pkg/tcpip/transport/tcp.rackControl" 538 } 539 540 func (rc *rackControl) StateFields() []string { 541 return []string{ 542 "TCPRACKState", 543 "exitedRecovery", 544 "minRTT", 545 "tlpRxtOut", 546 "tlpHighRxt", 547 "snd", 548 } 549 } 550 551 func (rc *rackControl) beforeSave() {} 552 553 // +checklocksignore 554 func (rc *rackControl) StateSave(stateSinkObject state.Sink) { 555 rc.beforeSave() 556 stateSinkObject.Save(0, &rc.TCPRACKState) 557 stateSinkObject.Save(1, &rc.exitedRecovery) 558 stateSinkObject.Save(2, &rc.minRTT) 559 stateSinkObject.Save(3, &rc.tlpRxtOut) 560 stateSinkObject.Save(4, &rc.tlpHighRxt) 561 stateSinkObject.Save(5, &rc.snd) 562 } 563 564 func (rc *rackControl) afterLoad() {} 565 566 // +checklocksignore 567 func (rc *rackControl) StateLoad(stateSourceObject state.Source) { 568 stateSourceObject.Load(0, &rc.TCPRACKState) 569 stateSourceObject.Load(1, &rc.exitedRecovery) 570 stateSourceObject.Load(2, &rc.minRTT) 571 stateSourceObject.Load(3, &rc.tlpRxtOut) 572 stateSourceObject.Load(4, &rc.tlpHighRxt) 573 stateSourceObject.Load(5, &rc.snd) 574 } 575 576 func (r *receiver) StateTypeName() string { 577 return "pkg/tcpip/transport/tcp.receiver" 578 } 579 580 func (r *receiver) StateFields() []string { 581 return []string{ 582 "TCPReceiverState", 583 "ep", 584 "rcvWnd", 585 "rcvWUP", 586 "prevBufUsed", 587 "closed", 588 "pendingRcvdSegments", 589 "lastRcvdAckTime", 590 } 591 } 592 593 func (r *receiver) beforeSave() {} 594 595 // +checklocksignore 596 func (r *receiver) StateSave(stateSinkObject state.Sink) { 597 r.beforeSave() 598 stateSinkObject.Save(0, &r.TCPReceiverState) 599 stateSinkObject.Save(1, &r.ep) 600 stateSinkObject.Save(2, &r.rcvWnd) 601 stateSinkObject.Save(3, &r.rcvWUP) 602 stateSinkObject.Save(4, &r.prevBufUsed) 603 stateSinkObject.Save(5, &r.closed) 604 stateSinkObject.Save(6, &r.pendingRcvdSegments) 605 stateSinkObject.Save(7, &r.lastRcvdAckTime) 606 } 607 608 func (r *receiver) afterLoad() {} 609 610 // +checklocksignore 611 func (r *receiver) StateLoad(stateSourceObject state.Source) { 612 stateSourceObject.Load(0, &r.TCPReceiverState) 613 stateSourceObject.Load(1, &r.ep) 614 stateSourceObject.Load(2, &r.rcvWnd) 615 stateSourceObject.Load(3, &r.rcvWUP) 616 stateSourceObject.Load(4, &r.prevBufUsed) 617 stateSourceObject.Load(5, &r.closed) 618 stateSourceObject.Load(6, &r.pendingRcvdSegments) 619 stateSourceObject.Load(7, &r.lastRcvdAckTime) 620 } 621 622 func (r *renoState) StateTypeName() string { 623 return "pkg/tcpip/transport/tcp.renoState" 624 } 625 626 func (r *renoState) StateFields() []string { 627 return []string{ 628 "s", 629 } 630 } 631 632 func (r *renoState) beforeSave() {} 633 634 // +checklocksignore 635 func (r *renoState) StateSave(stateSinkObject state.Sink) { 636 r.beforeSave() 637 stateSinkObject.Save(0, &r.s) 638 } 639 640 func (r *renoState) afterLoad() {} 641 642 // +checklocksignore 643 func (r *renoState) StateLoad(stateSourceObject state.Source) { 644 stateSourceObject.Load(0, &r.s) 645 } 646 647 func (rr *renoRecovery) StateTypeName() string { 648 return "pkg/tcpip/transport/tcp.renoRecovery" 649 } 650 651 func (rr *renoRecovery) StateFields() []string { 652 return []string{ 653 "s", 654 } 655 } 656 657 func (rr *renoRecovery) beforeSave() {} 658 659 // +checklocksignore 660 func (rr *renoRecovery) StateSave(stateSinkObject state.Sink) { 661 rr.beforeSave() 662 stateSinkObject.Save(0, &rr.s) 663 } 664 665 func (rr *renoRecovery) afterLoad() {} 666 667 // +checklocksignore 668 func (rr *renoRecovery) StateLoad(stateSourceObject state.Source) { 669 stateSourceObject.Load(0, &rr.s) 670 } 671 672 func (sr *sackRecovery) StateTypeName() string { 673 return "pkg/tcpip/transport/tcp.sackRecovery" 674 } 675 676 func (sr *sackRecovery) StateFields() []string { 677 return []string{ 678 "s", 679 } 680 } 681 682 func (sr *sackRecovery) beforeSave() {} 683 684 // +checklocksignore 685 func (sr *sackRecovery) StateSave(stateSinkObject state.Sink) { 686 sr.beforeSave() 687 stateSinkObject.Save(0, &sr.s) 688 } 689 690 func (sr *sackRecovery) afterLoad() {} 691 692 // +checklocksignore 693 func (sr *sackRecovery) StateLoad(stateSourceObject state.Source) { 694 stateSourceObject.Load(0, &sr.s) 695 } 696 697 func (s *SACKScoreboard) StateTypeName() string { 698 return "pkg/tcpip/transport/tcp.SACKScoreboard" 699 } 700 701 func (s *SACKScoreboard) StateFields() []string { 702 return []string{ 703 "smss", 704 "maxSACKED", 705 } 706 } 707 708 func (s *SACKScoreboard) beforeSave() {} 709 710 // +checklocksignore 711 func (s *SACKScoreboard) StateSave(stateSinkObject state.Sink) { 712 s.beforeSave() 713 stateSinkObject.Save(0, &s.smss) 714 stateSinkObject.Save(1, &s.maxSACKED) 715 } 716 717 func (s *SACKScoreboard) afterLoad() {} 718 719 // +checklocksignore 720 func (s *SACKScoreboard) StateLoad(stateSourceObject state.Source) { 721 stateSourceObject.Load(0, &s.smss) 722 stateSourceObject.Load(1, &s.maxSACKED) 723 } 724 725 func (s *segment) StateTypeName() string { 726 return "pkg/tcpip/transport/tcp.segment" 727 } 728 729 func (s *segment) StateFields() []string { 730 return []string{ 731 "segmentEntry", 732 "segmentRefs", 733 "ep", 734 "qFlags", 735 "pkt", 736 "sequenceNumber", 737 "ackNumber", 738 "flags", 739 "window", 740 "csum", 741 "csumValid", 742 "parsedOptions", 743 "options", 744 "hasNewSACKInfo", 745 "rcvdTime", 746 "xmitTime", 747 "xmitCount", 748 "acked", 749 "dataMemSize", 750 "lost", 751 } 752 } 753 754 func (s *segment) beforeSave() {} 755 756 // +checklocksignore 757 func (s *segment) StateSave(stateSinkObject state.Sink) { 758 s.beforeSave() 759 var optionsValue []byte 760 optionsValue = s.saveOptions() 761 stateSinkObject.SaveValue(12, optionsValue) 762 stateSinkObject.Save(0, &s.segmentEntry) 763 stateSinkObject.Save(1, &s.segmentRefs) 764 stateSinkObject.Save(2, &s.ep) 765 stateSinkObject.Save(3, &s.qFlags) 766 stateSinkObject.Save(4, &s.pkt) 767 stateSinkObject.Save(5, &s.sequenceNumber) 768 stateSinkObject.Save(6, &s.ackNumber) 769 stateSinkObject.Save(7, &s.flags) 770 stateSinkObject.Save(8, &s.window) 771 stateSinkObject.Save(9, &s.csum) 772 stateSinkObject.Save(10, &s.csumValid) 773 stateSinkObject.Save(11, &s.parsedOptions) 774 stateSinkObject.Save(13, &s.hasNewSACKInfo) 775 stateSinkObject.Save(14, &s.rcvdTime) 776 stateSinkObject.Save(15, &s.xmitTime) 777 stateSinkObject.Save(16, &s.xmitCount) 778 stateSinkObject.Save(17, &s.acked) 779 stateSinkObject.Save(18, &s.dataMemSize) 780 stateSinkObject.Save(19, &s.lost) 781 } 782 783 func (s *segment) afterLoad() {} 784 785 // +checklocksignore 786 func (s *segment) StateLoad(stateSourceObject state.Source) { 787 stateSourceObject.Load(0, &s.segmentEntry) 788 stateSourceObject.Load(1, &s.segmentRefs) 789 stateSourceObject.Load(2, &s.ep) 790 stateSourceObject.Load(3, &s.qFlags) 791 stateSourceObject.Load(4, &s.pkt) 792 stateSourceObject.Load(5, &s.sequenceNumber) 793 stateSourceObject.Load(6, &s.ackNumber) 794 stateSourceObject.Load(7, &s.flags) 795 stateSourceObject.Load(8, &s.window) 796 stateSourceObject.Load(9, &s.csum) 797 stateSourceObject.Load(10, &s.csumValid) 798 stateSourceObject.Load(11, &s.parsedOptions) 799 stateSourceObject.Load(13, &s.hasNewSACKInfo) 800 stateSourceObject.Load(14, &s.rcvdTime) 801 stateSourceObject.Load(15, &s.xmitTime) 802 stateSourceObject.Load(16, &s.xmitCount) 803 stateSourceObject.Load(17, &s.acked) 804 stateSourceObject.Load(18, &s.dataMemSize) 805 stateSourceObject.Load(19, &s.lost) 806 stateSourceObject.LoadValue(12, new([]byte), func(y any) { s.loadOptions(y.([]byte)) }) 807 } 808 809 func (q *segmentQueue) StateTypeName() string { 810 return "pkg/tcpip/transport/tcp.segmentQueue" 811 } 812 813 func (q *segmentQueue) StateFields() []string { 814 return []string{ 815 "list", 816 "ep", 817 "frozen", 818 } 819 } 820 821 func (q *segmentQueue) beforeSave() {} 822 823 // +checklocksignore 824 func (q *segmentQueue) StateSave(stateSinkObject state.Sink) { 825 q.beforeSave() 826 stateSinkObject.Save(0, &q.list) 827 stateSinkObject.Save(1, &q.ep) 828 stateSinkObject.Save(2, &q.frozen) 829 } 830 831 func (q *segmentQueue) afterLoad() {} 832 833 // +checklocksignore 834 func (q *segmentQueue) StateLoad(stateSourceObject state.Source) { 835 stateSourceObject.LoadWait(0, &q.list) 836 stateSourceObject.Load(1, &q.ep) 837 stateSourceObject.Load(2, &q.frozen) 838 } 839 840 func (s *sender) StateTypeName() string { 841 return "pkg/tcpip/transport/tcp.sender" 842 } 843 844 func (s *sender) StateFields() []string { 845 return []string{ 846 "TCPSenderState", 847 "ep", 848 "lr", 849 "firstRetransmittedSegXmitTime", 850 "writeNext", 851 "writeList", 852 "rtt", 853 "minRTO", 854 "maxRTO", 855 "maxRetries", 856 "gso", 857 "state", 858 "cc", 859 "rc", 860 "spuriousRecovery", 861 "retransmitTS", 862 } 863 } 864 865 func (s *sender) beforeSave() {} 866 867 // +checklocksignore 868 func (s *sender) StateSave(stateSinkObject state.Sink) { 869 s.beforeSave() 870 stateSinkObject.Save(0, &s.TCPSenderState) 871 stateSinkObject.Save(1, &s.ep) 872 stateSinkObject.Save(2, &s.lr) 873 stateSinkObject.Save(3, &s.firstRetransmittedSegXmitTime) 874 stateSinkObject.Save(4, &s.writeNext) 875 stateSinkObject.Save(5, &s.writeList) 876 stateSinkObject.Save(6, &s.rtt) 877 stateSinkObject.Save(7, &s.minRTO) 878 stateSinkObject.Save(8, &s.maxRTO) 879 stateSinkObject.Save(9, &s.maxRetries) 880 stateSinkObject.Save(10, &s.gso) 881 stateSinkObject.Save(11, &s.state) 882 stateSinkObject.Save(12, &s.cc) 883 stateSinkObject.Save(13, &s.rc) 884 stateSinkObject.Save(14, &s.spuriousRecovery) 885 stateSinkObject.Save(15, &s.retransmitTS) 886 } 887 888 func (s *sender) afterLoad() {} 889 890 // +checklocksignore 891 func (s *sender) StateLoad(stateSourceObject state.Source) { 892 stateSourceObject.Load(0, &s.TCPSenderState) 893 stateSourceObject.Load(1, &s.ep) 894 stateSourceObject.Load(2, &s.lr) 895 stateSourceObject.Load(3, &s.firstRetransmittedSegXmitTime) 896 stateSourceObject.Load(4, &s.writeNext) 897 stateSourceObject.Load(5, &s.writeList) 898 stateSourceObject.Load(6, &s.rtt) 899 stateSourceObject.Load(7, &s.minRTO) 900 stateSourceObject.Load(8, &s.maxRTO) 901 stateSourceObject.Load(9, &s.maxRetries) 902 stateSourceObject.Load(10, &s.gso) 903 stateSourceObject.Load(11, &s.state) 904 stateSourceObject.Load(12, &s.cc) 905 stateSourceObject.Load(13, &s.rc) 906 stateSourceObject.Load(14, &s.spuriousRecovery) 907 stateSourceObject.Load(15, &s.retransmitTS) 908 } 909 910 func (r *rtt) StateTypeName() string { 911 return "pkg/tcpip/transport/tcp.rtt" 912 } 913 914 func (r *rtt) StateFields() []string { 915 return []string{ 916 "TCPRTTState", 917 } 918 } 919 920 func (r *rtt) beforeSave() {} 921 922 // +checklocksignore 923 func (r *rtt) StateSave(stateSinkObject state.Sink) { 924 r.beforeSave() 925 stateSinkObject.Save(0, &r.TCPRTTState) 926 } 927 928 func (r *rtt) afterLoad() {} 929 930 // +checklocksignore 931 func (r *rtt) StateLoad(stateSourceObject state.Source) { 932 stateSourceObject.Load(0, &r.TCPRTTState) 933 } 934 935 func (l *endpointList) StateTypeName() string { 936 return "pkg/tcpip/transport/tcp.endpointList" 937 } 938 939 func (l *endpointList) StateFields() []string { 940 return []string{ 941 "head", 942 "tail", 943 } 944 } 945 946 func (l *endpointList) beforeSave() {} 947 948 // +checklocksignore 949 func (l *endpointList) StateSave(stateSinkObject state.Sink) { 950 l.beforeSave() 951 stateSinkObject.Save(0, &l.head) 952 stateSinkObject.Save(1, &l.tail) 953 } 954 955 func (l *endpointList) afterLoad() {} 956 957 // +checklocksignore 958 func (l *endpointList) StateLoad(stateSourceObject state.Source) { 959 stateSourceObject.Load(0, &l.head) 960 stateSourceObject.Load(1, &l.tail) 961 } 962 963 func (e *endpointEntry) StateTypeName() string { 964 return "pkg/tcpip/transport/tcp.endpointEntry" 965 } 966 967 func (e *endpointEntry) StateFields() []string { 968 return []string{ 969 "next", 970 "prev", 971 } 972 } 973 974 func (e *endpointEntry) beforeSave() {} 975 976 // +checklocksignore 977 func (e *endpointEntry) StateSave(stateSinkObject state.Sink) { 978 e.beforeSave() 979 stateSinkObject.Save(0, &e.next) 980 stateSinkObject.Save(1, &e.prev) 981 } 982 983 func (e *endpointEntry) afterLoad() {} 984 985 // +checklocksignore 986 func (e *endpointEntry) StateLoad(stateSourceObject state.Source) { 987 stateSourceObject.Load(0, &e.next) 988 stateSourceObject.Load(1, &e.prev) 989 } 990 991 func (l *segmentList) StateTypeName() string { 992 return "pkg/tcpip/transport/tcp.segmentList" 993 } 994 995 func (l *segmentList) StateFields() []string { 996 return []string{ 997 "head", 998 "tail", 999 } 1000 } 1001 1002 func (l *segmentList) beforeSave() {} 1003 1004 // +checklocksignore 1005 func (l *segmentList) StateSave(stateSinkObject state.Sink) { 1006 l.beforeSave() 1007 stateSinkObject.Save(0, &l.head) 1008 stateSinkObject.Save(1, &l.tail) 1009 } 1010 1011 func (l *segmentList) afterLoad() {} 1012 1013 // +checklocksignore 1014 func (l *segmentList) StateLoad(stateSourceObject state.Source) { 1015 stateSourceObject.Load(0, &l.head) 1016 stateSourceObject.Load(1, &l.tail) 1017 } 1018 1019 func (e *segmentEntry) StateTypeName() string { 1020 return "pkg/tcpip/transport/tcp.segmentEntry" 1021 } 1022 1023 func (e *segmentEntry) StateFields() []string { 1024 return []string{ 1025 "next", 1026 "prev", 1027 } 1028 } 1029 1030 func (e *segmentEntry) beforeSave() {} 1031 1032 // +checklocksignore 1033 func (e *segmentEntry) StateSave(stateSinkObject state.Sink) { 1034 e.beforeSave() 1035 stateSinkObject.Save(0, &e.next) 1036 stateSinkObject.Save(1, &e.prev) 1037 } 1038 1039 func (e *segmentEntry) afterLoad() {} 1040 1041 // +checklocksignore 1042 func (e *segmentEntry) StateLoad(stateSourceObject state.Source) { 1043 stateSourceObject.Load(0, &e.next) 1044 stateSourceObject.Load(1, &e.prev) 1045 } 1046 1047 func (r *segmentRefs) StateTypeName() string { 1048 return "pkg/tcpip/transport/tcp.segmentRefs" 1049 } 1050 1051 func (r *segmentRefs) StateFields() []string { 1052 return []string{ 1053 "refCount", 1054 } 1055 } 1056 1057 func (r *segmentRefs) beforeSave() {} 1058 1059 // +checklocksignore 1060 func (r *segmentRefs) StateSave(stateSinkObject state.Sink) { 1061 r.beforeSave() 1062 stateSinkObject.Save(0, &r.refCount) 1063 } 1064 1065 // +checklocksignore 1066 func (r *segmentRefs) StateLoad(stateSourceObject state.Source) { 1067 stateSourceObject.Load(0, &r.refCount) 1068 stateSourceObject.AfterLoad(r.afterLoad) 1069 } 1070 1071 func init() { 1072 state.Register((*acceptQueue)(nil)) 1073 state.Register((*handshake)(nil)) 1074 state.Register((*cubicState)(nil)) 1075 state.Register((*SACKInfo)(nil)) 1076 state.Register((*ReceiveErrors)(nil)) 1077 state.Register((*SendErrors)(nil)) 1078 state.Register((*Stats)(nil)) 1079 state.Register((*sndQueueInfo)(nil)) 1080 state.Register((*endpoint)(nil)) 1081 state.Register((*keepalive)(nil)) 1082 state.Register((*rackControl)(nil)) 1083 state.Register((*receiver)(nil)) 1084 state.Register((*renoState)(nil)) 1085 state.Register((*renoRecovery)(nil)) 1086 state.Register((*sackRecovery)(nil)) 1087 state.Register((*SACKScoreboard)(nil)) 1088 state.Register((*segment)(nil)) 1089 state.Register((*segmentQueue)(nil)) 1090 state.Register((*sender)(nil)) 1091 state.Register((*rtt)(nil)) 1092 state.Register((*endpointList)(nil)) 1093 state.Register((*endpointEntry)(nil)) 1094 state.Register((*segmentList)(nil)) 1095 state.Register((*segmentEntry)(nil)) 1096 state.Register((*segmentRefs)(nil)) 1097 }