snapshot: sagernet/gvisor v0.0.0-20250811.0-sing-box-mod.1

Содержимое пина, зафиксированного в go.mod sing-box-lx, одним коммитом
без истории. Полная история SagerNet/gvisor — 1.45 ГБ и клонируется в
каждой CI-джобе; наша дельта — одна вставка в одну функцию, история для
неё не нужна.

Module path github.com/sagernet/gvisor сохранён намеренно: на него
опирается replace-директива суперпроекта.

Патч поверх — отдельным коммитом, чтобы дельта читалась одним git show
и переносилась на новый пин копированием.

SPECS/TASKS/048-GVISOR_HANDSHAKE_NIL_CRASH
This commit is contained in:
Leadaxe 2026-08-04 15:50:08 +03:00
commit 2c4ae3b0a4
712 changed files with 185689 additions and 0 deletions

View file

@ -0,0 +1,785 @@
// automatically generated by stateify.
package ipv4
import (
"context"
"github.com/sagernet/gvisor/pkg/state"
)
func (i *icmpv4DestinationUnreachableSockError) StateTypeName() string {
return "pkg/tcpip/network/ipv4.icmpv4DestinationUnreachableSockError"
}
func (i *icmpv4DestinationUnreachableSockError) StateFields() []string {
return []string{}
}
func (i *icmpv4DestinationUnreachableSockError) beforeSave() {}
// +checklocksignore
func (i *icmpv4DestinationUnreachableSockError) StateSave(stateSinkObject state.Sink) {
i.beforeSave()
}
func (i *icmpv4DestinationUnreachableSockError) afterLoad(context.Context) {}
// +checklocksignore
func (i *icmpv4DestinationUnreachableSockError) StateLoad(ctx context.Context, stateSourceObject state.Source) {
}
func (i *icmpv4DestinationHostUnreachableSockError) StateTypeName() string {
return "pkg/tcpip/network/ipv4.icmpv4DestinationHostUnreachableSockError"
}
func (i *icmpv4DestinationHostUnreachableSockError) StateFields() []string {
return []string{
"icmpv4DestinationUnreachableSockError",
}
}
func (i *icmpv4DestinationHostUnreachableSockError) beforeSave() {}
// +checklocksignore
func (i *icmpv4DestinationHostUnreachableSockError) StateSave(stateSinkObject state.Sink) {
i.beforeSave()
stateSinkObject.Save(0, &i.icmpv4DestinationUnreachableSockError)
}
func (i *icmpv4DestinationHostUnreachableSockError) afterLoad(context.Context) {}
// +checklocksignore
func (i *icmpv4DestinationHostUnreachableSockError) StateLoad(ctx context.Context, stateSourceObject state.Source) {
stateSourceObject.Load(0, &i.icmpv4DestinationUnreachableSockError)
}
func (i *icmpv4DestinationNetUnreachableSockError) StateTypeName() string {
return "pkg/tcpip/network/ipv4.icmpv4DestinationNetUnreachableSockError"
}
func (i *icmpv4DestinationNetUnreachableSockError) StateFields() []string {
return []string{
"icmpv4DestinationUnreachableSockError",
}
}
func (i *icmpv4DestinationNetUnreachableSockError) beforeSave() {}
// +checklocksignore
func (i *icmpv4DestinationNetUnreachableSockError) StateSave(stateSinkObject state.Sink) {
i.beforeSave()
stateSinkObject.Save(0, &i.icmpv4DestinationUnreachableSockError)
}
func (i *icmpv4DestinationNetUnreachableSockError) afterLoad(context.Context) {}
// +checklocksignore
func (i *icmpv4DestinationNetUnreachableSockError) StateLoad(ctx context.Context, stateSourceObject state.Source) {
stateSourceObject.Load(0, &i.icmpv4DestinationUnreachableSockError)
}
func (i *icmpv4DestinationPortUnreachableSockError) StateTypeName() string {
return "pkg/tcpip/network/ipv4.icmpv4DestinationPortUnreachableSockError"
}
func (i *icmpv4DestinationPortUnreachableSockError) StateFields() []string {
return []string{
"icmpv4DestinationUnreachableSockError",
}
}
func (i *icmpv4DestinationPortUnreachableSockError) beforeSave() {}
// +checklocksignore
func (i *icmpv4DestinationPortUnreachableSockError) StateSave(stateSinkObject state.Sink) {
i.beforeSave()
stateSinkObject.Save(0, &i.icmpv4DestinationUnreachableSockError)
}
func (i *icmpv4DestinationPortUnreachableSockError) afterLoad(context.Context) {}
// +checklocksignore
func (i *icmpv4DestinationPortUnreachableSockError) StateLoad(ctx context.Context, stateSourceObject state.Source) {
stateSourceObject.Load(0, &i.icmpv4DestinationUnreachableSockError)
}
func (i *icmpv4DestinationProtoUnreachableSockError) StateTypeName() string {
return "pkg/tcpip/network/ipv4.icmpv4DestinationProtoUnreachableSockError"
}
func (i *icmpv4DestinationProtoUnreachableSockError) StateFields() []string {
return []string{
"icmpv4DestinationUnreachableSockError",
}
}
func (i *icmpv4DestinationProtoUnreachableSockError) beforeSave() {}
// +checklocksignore
func (i *icmpv4DestinationProtoUnreachableSockError) StateSave(stateSinkObject state.Sink) {
i.beforeSave()
stateSinkObject.Save(0, &i.icmpv4DestinationUnreachableSockError)
}
func (i *icmpv4DestinationProtoUnreachableSockError) afterLoad(context.Context) {}
// +checklocksignore
func (i *icmpv4DestinationProtoUnreachableSockError) StateLoad(ctx context.Context, stateSourceObject state.Source) {
stateSourceObject.Load(0, &i.icmpv4DestinationUnreachableSockError)
}
func (i *icmpv4SourceRouteFailedSockError) StateTypeName() string {
return "pkg/tcpip/network/ipv4.icmpv4SourceRouteFailedSockError"
}
func (i *icmpv4SourceRouteFailedSockError) StateFields() []string {
return []string{
"icmpv4DestinationUnreachableSockError",
}
}
func (i *icmpv4SourceRouteFailedSockError) beforeSave() {}
// +checklocksignore
func (i *icmpv4SourceRouteFailedSockError) StateSave(stateSinkObject state.Sink) {
i.beforeSave()
stateSinkObject.Save(0, &i.icmpv4DestinationUnreachableSockError)
}
func (i *icmpv4SourceRouteFailedSockError) afterLoad(context.Context) {}
// +checklocksignore
func (i *icmpv4SourceRouteFailedSockError) StateLoad(ctx context.Context, stateSourceObject state.Source) {
stateSourceObject.Load(0, &i.icmpv4DestinationUnreachableSockError)
}
func (i *icmpv4SourceHostIsolatedSockError) StateTypeName() string {
return "pkg/tcpip/network/ipv4.icmpv4SourceHostIsolatedSockError"
}
func (i *icmpv4SourceHostIsolatedSockError) StateFields() []string {
return []string{
"icmpv4DestinationUnreachableSockError",
}
}
func (i *icmpv4SourceHostIsolatedSockError) beforeSave() {}
// +checklocksignore
func (i *icmpv4SourceHostIsolatedSockError) StateSave(stateSinkObject state.Sink) {
i.beforeSave()
stateSinkObject.Save(0, &i.icmpv4DestinationUnreachableSockError)
}
func (i *icmpv4SourceHostIsolatedSockError) afterLoad(context.Context) {}
// +checklocksignore
func (i *icmpv4SourceHostIsolatedSockError) StateLoad(ctx context.Context, stateSourceObject state.Source) {
stateSourceObject.Load(0, &i.icmpv4DestinationUnreachableSockError)
}
func (i *icmpv4DestinationHostUnknownSockError) StateTypeName() string {
return "pkg/tcpip/network/ipv4.icmpv4DestinationHostUnknownSockError"
}
func (i *icmpv4DestinationHostUnknownSockError) StateFields() []string {
return []string{
"icmpv4DestinationUnreachableSockError",
}
}
func (i *icmpv4DestinationHostUnknownSockError) beforeSave() {}
// +checklocksignore
func (i *icmpv4DestinationHostUnknownSockError) StateSave(stateSinkObject state.Sink) {
i.beforeSave()
stateSinkObject.Save(0, &i.icmpv4DestinationUnreachableSockError)
}
func (i *icmpv4DestinationHostUnknownSockError) afterLoad(context.Context) {}
// +checklocksignore
func (i *icmpv4DestinationHostUnknownSockError) StateLoad(ctx context.Context, stateSourceObject state.Source) {
stateSourceObject.Load(0, &i.icmpv4DestinationUnreachableSockError)
}
func (e *icmpv4FragmentationNeededSockError) StateTypeName() string {
return "pkg/tcpip/network/ipv4.icmpv4FragmentationNeededSockError"
}
func (e *icmpv4FragmentationNeededSockError) StateFields() []string {
return []string{
"icmpv4DestinationUnreachableSockError",
"mtu",
}
}
func (e *icmpv4FragmentationNeededSockError) beforeSave() {}
// +checklocksignore
func (e *icmpv4FragmentationNeededSockError) StateSave(stateSinkObject state.Sink) {
e.beforeSave()
stateSinkObject.Save(0, &e.icmpv4DestinationUnreachableSockError)
stateSinkObject.Save(1, &e.mtu)
}
func (e *icmpv4FragmentationNeededSockError) afterLoad(context.Context) {}
// +checklocksignore
func (e *icmpv4FragmentationNeededSockError) StateLoad(ctx context.Context, stateSourceObject state.Source) {
stateSourceObject.Load(0, &e.icmpv4DestinationUnreachableSockError)
stateSourceObject.Load(1, &e.mtu)
}
func (i *IGMPOptions) StateTypeName() string {
return "pkg/tcpip/network/ipv4.IGMPOptions"
}
func (i *IGMPOptions) StateFields() []string {
return []string{
"Enabled",
}
}
func (i *IGMPOptions) beforeSave() {}
// +checklocksignore
func (i *IGMPOptions) StateSave(stateSinkObject state.Sink) {
i.beforeSave()
stateSinkObject.Save(0, &i.Enabled)
}
func (i *IGMPOptions) afterLoad(context.Context) {}
// +checklocksignore
func (i *IGMPOptions) StateLoad(ctx context.Context, stateSourceObject state.Source) {
stateSourceObject.Load(0, &i.Enabled)
}
func (igmp *igmpState) StateTypeName() string {
return "pkg/tcpip/network/ipv4.igmpState"
}
func (igmp *igmpState) StateFields() []string {
return []string{
"ep",
"genericMulticastProtocol",
"mode",
"igmpV1Job",
}
}
func (igmp *igmpState) beforeSave() {}
// +checklocksignore
func (igmp *igmpState) StateSave(stateSinkObject state.Sink) {
igmp.beforeSave()
stateSinkObject.Save(0, &igmp.ep)
stateSinkObject.Save(1, &igmp.genericMulticastProtocol)
stateSinkObject.Save(2, &igmp.mode)
stateSinkObject.Save(3, &igmp.igmpV1Job)
}
func (igmp *igmpState) afterLoad(context.Context) {}
// +checklocksignore
func (igmp *igmpState) StateLoad(ctx context.Context, stateSourceObject state.Source) {
stateSourceObject.Load(0, &igmp.ep)
stateSourceObject.Load(1, &igmp.genericMulticastProtocol)
stateSourceObject.Load(2, &igmp.mode)
stateSourceObject.Load(3, &igmp.igmpV1Job)
}
func (e *endpoint) StateTypeName() string {
return "pkg/tcpip/network/ipv4.endpoint"
}
func (e *endpoint) StateFields() []string {
return []string{
"nic",
"dispatcher",
"protocol",
"stats",
"enabled",
"forwarding",
"multicastForwarding",
"addressableEndpointState",
"igmp",
}
}
func (e *endpoint) beforeSave() {}
// +checklocksignore
func (e *endpoint) StateSave(stateSinkObject state.Sink) {
e.beforeSave()
stateSinkObject.Save(0, &e.nic)
stateSinkObject.Save(1, &e.dispatcher)
stateSinkObject.Save(2, &e.protocol)
stateSinkObject.Save(3, &e.stats)
stateSinkObject.Save(4, &e.enabled)
stateSinkObject.Save(5, &e.forwarding)
stateSinkObject.Save(6, &e.multicastForwarding)
stateSinkObject.Save(7, &e.addressableEndpointState)
stateSinkObject.Save(8, &e.igmp)
}
func (e *endpoint) afterLoad(context.Context) {}
// +checklocksignore
func (e *endpoint) StateLoad(ctx context.Context, stateSourceObject state.Source) {
stateSourceObject.Load(0, &e.nic)
stateSourceObject.Load(1, &e.dispatcher)
stateSourceObject.Load(2, &e.protocol)
stateSourceObject.Load(3, &e.stats)
stateSourceObject.Load(4, &e.enabled)
stateSourceObject.Load(5, &e.forwarding)
stateSourceObject.Load(6, &e.multicastForwarding)
stateSourceObject.Load(7, &e.addressableEndpointState)
stateSourceObject.Load(8, &e.igmp)
}
func (p *protocol) StateTypeName() string {
return "pkg/tcpip/network/ipv4.protocol"
}
func (p *protocol) StateFields() []string {
return []string{
"stack",
"eps",
"icmpRateLimitedTypes",
"defaultTTL",
"ids",
"hashIV",
"idTS",
"fragmentation",
"options",
"multicastRouteTable",
"multicastForwardingDisp",
}
}
func (p *protocol) beforeSave() {}
// +checklocksignore
func (p *protocol) StateSave(stateSinkObject state.Sink) {
p.beforeSave()
stateSinkObject.Save(0, &p.stack)
stateSinkObject.Save(1, &p.eps)
stateSinkObject.Save(2, &p.icmpRateLimitedTypes)
stateSinkObject.Save(3, &p.defaultTTL)
stateSinkObject.Save(4, &p.ids)
stateSinkObject.Save(5, &p.hashIV)
stateSinkObject.Save(6, &p.idTS)
stateSinkObject.Save(7, &p.fragmentation)
stateSinkObject.Save(8, &p.options)
stateSinkObject.Save(9, &p.multicastRouteTable)
stateSinkObject.Save(10, &p.multicastForwardingDisp)
}
func (p *protocol) afterLoad(context.Context) {}
// +checklocksignore
func (p *protocol) StateLoad(ctx context.Context, stateSourceObject state.Source) {
stateSourceObject.Load(0, &p.stack)
stateSourceObject.Load(1, &p.eps)
stateSourceObject.Load(2, &p.icmpRateLimitedTypes)
stateSourceObject.Load(3, &p.defaultTTL)
stateSourceObject.Load(4, &p.ids)
stateSourceObject.Load(5, &p.hashIV)
stateSourceObject.Load(6, &p.idTS)
stateSourceObject.Load(7, &p.fragmentation)
stateSourceObject.Load(8, &p.options)
stateSourceObject.Load(9, &p.multicastRouteTable)
stateSourceObject.Load(10, &p.multicastForwardingDisp)
}
func (o *Options) StateTypeName() string {
return "pkg/tcpip/network/ipv4.Options"
}
func (o *Options) StateFields() []string {
return []string{
"IGMP",
"AllowExternalLoopbackTraffic",
}
}
func (o *Options) beforeSave() {}
// +checklocksignore
func (o *Options) StateSave(stateSinkObject state.Sink) {
o.beforeSave()
stateSinkObject.Save(0, &o.IGMP)
stateSinkObject.Save(1, &o.AllowExternalLoopbackTraffic)
}
func (o *Options) afterLoad(context.Context) {}
// +checklocksignore
func (o *Options) StateLoad(ctx context.Context, stateSourceObject state.Source) {
stateSourceObject.Load(0, &o.IGMP)
stateSourceObject.Load(1, &o.AllowExternalLoopbackTraffic)
}
func (s *Stats) StateTypeName() string {
return "pkg/tcpip/network/ipv4.Stats"
}
func (s *Stats) StateFields() []string {
return []string{
"IP",
"IGMP",
"ICMP",
}
}
func (s *Stats) beforeSave() {}
// +checklocksignore
func (s *Stats) StateSave(stateSinkObject state.Sink) {
s.beforeSave()
stateSinkObject.Save(0, &s.IP)
stateSinkObject.Save(1, &s.IGMP)
stateSinkObject.Save(2, &s.ICMP)
}
func (s *Stats) afterLoad(context.Context) {}
// +checklocksignore
func (s *Stats) StateLoad(ctx context.Context, stateSourceObject state.Source) {
stateSourceObject.Load(0, &s.IP)
stateSourceObject.Load(1, &s.IGMP)
stateSourceObject.Load(2, &s.ICMP)
}
func (s *sharedStats) StateTypeName() string {
return "pkg/tcpip/network/ipv4.sharedStats"
}
func (s *sharedStats) StateFields() []string {
return []string{
"localStats",
"ip",
"icmp",
"igmp",
}
}
func (s *sharedStats) beforeSave() {}
// +checklocksignore
func (s *sharedStats) StateSave(stateSinkObject state.Sink) {
s.beforeSave()
stateSinkObject.Save(0, &s.localStats)
stateSinkObject.Save(1, &s.ip)
stateSinkObject.Save(2, &s.icmp)
stateSinkObject.Save(3, &s.igmp)
}
func (s *sharedStats) afterLoad(context.Context) {}
// +checklocksignore
func (s *sharedStats) StateLoad(ctx context.Context, stateSourceObject state.Source) {
stateSourceObject.Load(0, &s.localStats)
stateSourceObject.Load(1, &s.ip)
stateSourceObject.Load(2, &s.icmp)
stateSourceObject.Load(3, &s.igmp)
}
func (m *multiCounterICMPv4PacketStats) StateTypeName() string {
return "pkg/tcpip/network/ipv4.multiCounterICMPv4PacketStats"
}
func (m *multiCounterICMPv4PacketStats) StateFields() []string {
return []string{
"echoRequest",
"echoReply",
"dstUnreachable",
"srcQuench",
"redirect",
"timeExceeded",
"paramProblem",
"timestamp",
"timestampReply",
"infoRequest",
"infoReply",
}
}
func (m *multiCounterICMPv4PacketStats) beforeSave() {}
// +checklocksignore
func (m *multiCounterICMPv4PacketStats) StateSave(stateSinkObject state.Sink) {
m.beforeSave()
stateSinkObject.Save(0, &m.echoRequest)
stateSinkObject.Save(1, &m.echoReply)
stateSinkObject.Save(2, &m.dstUnreachable)
stateSinkObject.Save(3, &m.srcQuench)
stateSinkObject.Save(4, &m.redirect)
stateSinkObject.Save(5, &m.timeExceeded)
stateSinkObject.Save(6, &m.paramProblem)
stateSinkObject.Save(7, &m.timestamp)
stateSinkObject.Save(8, &m.timestampReply)
stateSinkObject.Save(9, &m.infoRequest)
stateSinkObject.Save(10, &m.infoReply)
}
func (m *multiCounterICMPv4PacketStats) afterLoad(context.Context) {}
// +checklocksignore
func (m *multiCounterICMPv4PacketStats) StateLoad(ctx context.Context, stateSourceObject state.Source) {
stateSourceObject.Load(0, &m.echoRequest)
stateSourceObject.Load(1, &m.echoReply)
stateSourceObject.Load(2, &m.dstUnreachable)
stateSourceObject.Load(3, &m.srcQuench)
stateSourceObject.Load(4, &m.redirect)
stateSourceObject.Load(5, &m.timeExceeded)
stateSourceObject.Load(6, &m.paramProblem)
stateSourceObject.Load(7, &m.timestamp)
stateSourceObject.Load(8, &m.timestampReply)
stateSourceObject.Load(9, &m.infoRequest)
stateSourceObject.Load(10, &m.infoReply)
}
func (m *multiCounterICMPv4SentPacketStats) StateTypeName() string {
return "pkg/tcpip/network/ipv4.multiCounterICMPv4SentPacketStats"
}
func (m *multiCounterICMPv4SentPacketStats) StateFields() []string {
return []string{
"multiCounterICMPv4PacketStats",
"dropped",
"rateLimited",
}
}
func (m *multiCounterICMPv4SentPacketStats) beforeSave() {}
// +checklocksignore
func (m *multiCounterICMPv4SentPacketStats) StateSave(stateSinkObject state.Sink) {
m.beforeSave()
stateSinkObject.Save(0, &m.multiCounterICMPv4PacketStats)
stateSinkObject.Save(1, &m.dropped)
stateSinkObject.Save(2, &m.rateLimited)
}
func (m *multiCounterICMPv4SentPacketStats) afterLoad(context.Context) {}
// +checklocksignore
func (m *multiCounterICMPv4SentPacketStats) StateLoad(ctx context.Context, stateSourceObject state.Source) {
stateSourceObject.Load(0, &m.multiCounterICMPv4PacketStats)
stateSourceObject.Load(1, &m.dropped)
stateSourceObject.Load(2, &m.rateLimited)
}
func (m *multiCounterICMPv4ReceivedPacketStats) StateTypeName() string {
return "pkg/tcpip/network/ipv4.multiCounterICMPv4ReceivedPacketStats"
}
func (m *multiCounterICMPv4ReceivedPacketStats) StateFields() []string {
return []string{
"multiCounterICMPv4PacketStats",
"invalid",
}
}
func (m *multiCounterICMPv4ReceivedPacketStats) beforeSave() {}
// +checklocksignore
func (m *multiCounterICMPv4ReceivedPacketStats) StateSave(stateSinkObject state.Sink) {
m.beforeSave()
stateSinkObject.Save(0, &m.multiCounterICMPv4PacketStats)
stateSinkObject.Save(1, &m.invalid)
}
func (m *multiCounterICMPv4ReceivedPacketStats) afterLoad(context.Context) {}
// +checklocksignore
func (m *multiCounterICMPv4ReceivedPacketStats) StateLoad(ctx context.Context, stateSourceObject state.Source) {
stateSourceObject.Load(0, &m.multiCounterICMPv4PacketStats)
stateSourceObject.Load(1, &m.invalid)
}
func (m *multiCounterICMPv4Stats) StateTypeName() string {
return "pkg/tcpip/network/ipv4.multiCounterICMPv4Stats"
}
func (m *multiCounterICMPv4Stats) StateFields() []string {
return []string{
"packetsSent",
"packetsReceived",
}
}
func (m *multiCounterICMPv4Stats) beforeSave() {}
// +checklocksignore
func (m *multiCounterICMPv4Stats) StateSave(stateSinkObject state.Sink) {
m.beforeSave()
stateSinkObject.Save(0, &m.packetsSent)
stateSinkObject.Save(1, &m.packetsReceived)
}
func (m *multiCounterICMPv4Stats) afterLoad(context.Context) {}
// +checklocksignore
func (m *multiCounterICMPv4Stats) StateLoad(ctx context.Context, stateSourceObject state.Source) {
stateSourceObject.Load(0, &m.packetsSent)
stateSourceObject.Load(1, &m.packetsReceived)
}
func (m *multiCounterIGMPPacketStats) StateTypeName() string {
return "pkg/tcpip/network/ipv4.multiCounterIGMPPacketStats"
}
func (m *multiCounterIGMPPacketStats) StateFields() []string {
return []string{
"membershipQuery",
"v1MembershipReport",
"v2MembershipReport",
"v3MembershipReport",
"leaveGroup",
}
}
func (m *multiCounterIGMPPacketStats) beforeSave() {}
// +checklocksignore
func (m *multiCounterIGMPPacketStats) StateSave(stateSinkObject state.Sink) {
m.beforeSave()
stateSinkObject.Save(0, &m.membershipQuery)
stateSinkObject.Save(1, &m.v1MembershipReport)
stateSinkObject.Save(2, &m.v2MembershipReport)
stateSinkObject.Save(3, &m.v3MembershipReport)
stateSinkObject.Save(4, &m.leaveGroup)
}
func (m *multiCounterIGMPPacketStats) afterLoad(context.Context) {}
// +checklocksignore
func (m *multiCounterIGMPPacketStats) StateLoad(ctx context.Context, stateSourceObject state.Source) {
stateSourceObject.Load(0, &m.membershipQuery)
stateSourceObject.Load(1, &m.v1MembershipReport)
stateSourceObject.Load(2, &m.v2MembershipReport)
stateSourceObject.Load(3, &m.v3MembershipReport)
stateSourceObject.Load(4, &m.leaveGroup)
}
func (m *multiCounterIGMPSentPacketStats) StateTypeName() string {
return "pkg/tcpip/network/ipv4.multiCounterIGMPSentPacketStats"
}
func (m *multiCounterIGMPSentPacketStats) StateFields() []string {
return []string{
"multiCounterIGMPPacketStats",
"dropped",
}
}
func (m *multiCounterIGMPSentPacketStats) beforeSave() {}
// +checklocksignore
func (m *multiCounterIGMPSentPacketStats) StateSave(stateSinkObject state.Sink) {
m.beforeSave()
stateSinkObject.Save(0, &m.multiCounterIGMPPacketStats)
stateSinkObject.Save(1, &m.dropped)
}
func (m *multiCounterIGMPSentPacketStats) afterLoad(context.Context) {}
// +checklocksignore
func (m *multiCounterIGMPSentPacketStats) StateLoad(ctx context.Context, stateSourceObject state.Source) {
stateSourceObject.Load(0, &m.multiCounterIGMPPacketStats)
stateSourceObject.Load(1, &m.dropped)
}
func (m *multiCounterIGMPReceivedPacketStats) StateTypeName() string {
return "pkg/tcpip/network/ipv4.multiCounterIGMPReceivedPacketStats"
}
func (m *multiCounterIGMPReceivedPacketStats) StateFields() []string {
return []string{
"multiCounterIGMPPacketStats",
"invalid",
"checksumErrors",
"unrecognized",
}
}
func (m *multiCounterIGMPReceivedPacketStats) beforeSave() {}
// +checklocksignore
func (m *multiCounterIGMPReceivedPacketStats) StateSave(stateSinkObject state.Sink) {
m.beforeSave()
stateSinkObject.Save(0, &m.multiCounterIGMPPacketStats)
stateSinkObject.Save(1, &m.invalid)
stateSinkObject.Save(2, &m.checksumErrors)
stateSinkObject.Save(3, &m.unrecognized)
}
func (m *multiCounterIGMPReceivedPacketStats) afterLoad(context.Context) {}
// +checklocksignore
func (m *multiCounterIGMPReceivedPacketStats) StateLoad(ctx context.Context, stateSourceObject state.Source) {
stateSourceObject.Load(0, &m.multiCounterIGMPPacketStats)
stateSourceObject.Load(1, &m.invalid)
stateSourceObject.Load(2, &m.checksumErrors)
stateSourceObject.Load(3, &m.unrecognized)
}
func (m *multiCounterIGMPStats) StateTypeName() string {
return "pkg/tcpip/network/ipv4.multiCounterIGMPStats"
}
func (m *multiCounterIGMPStats) StateFields() []string {
return []string{
"packetsSent",
"packetsReceived",
}
}
func (m *multiCounterIGMPStats) beforeSave() {}
// +checklocksignore
func (m *multiCounterIGMPStats) StateSave(stateSinkObject state.Sink) {
m.beforeSave()
stateSinkObject.Save(0, &m.packetsSent)
stateSinkObject.Save(1, &m.packetsReceived)
}
func (m *multiCounterIGMPStats) afterLoad(context.Context) {}
// +checklocksignore
func (m *multiCounterIGMPStats) StateLoad(ctx context.Context, stateSourceObject state.Source) {
stateSourceObject.Load(0, &m.packetsSent)
stateSourceObject.Load(1, &m.packetsReceived)
}
func init() {
state.Register((*icmpv4DestinationUnreachableSockError)(nil))
state.Register((*icmpv4DestinationHostUnreachableSockError)(nil))
state.Register((*icmpv4DestinationNetUnreachableSockError)(nil))
state.Register((*icmpv4DestinationPortUnreachableSockError)(nil))
state.Register((*icmpv4DestinationProtoUnreachableSockError)(nil))
state.Register((*icmpv4SourceRouteFailedSockError)(nil))
state.Register((*icmpv4SourceHostIsolatedSockError)(nil))
state.Register((*icmpv4DestinationHostUnknownSockError)(nil))
state.Register((*icmpv4FragmentationNeededSockError)(nil))
state.Register((*IGMPOptions)(nil))
state.Register((*igmpState)(nil))
state.Register((*endpoint)(nil))
state.Register((*protocol)(nil))
state.Register((*Options)(nil))
state.Register((*Stats)(nil))
state.Register((*sharedStats)(nil))
state.Register((*multiCounterICMPv4PacketStats)(nil))
state.Register((*multiCounterICMPv4SentPacketStats)(nil))
state.Register((*multiCounterICMPv4ReceivedPacketStats)(nil))
state.Register((*multiCounterICMPv4Stats)(nil))
state.Register((*multiCounterIGMPPacketStats)(nil))
state.Register((*multiCounterIGMPSentPacketStats)(nil))
state.Register((*multiCounterIGMPReceivedPacketStats)(nil))
state.Register((*multiCounterIGMPStats)(nil))
}