From fc60034b8420e38eae6780c00833ee2a60485c3a Mon Sep 17 00:00:00 2001 From: Sergey Matveev Date: Tue, 23 Jul 2024 11:37:35 +0300 Subject: [PATCH] Update gvisor --- src/go.mod | 6 +++--- src/go.sum | 12 ++++++------ src/yggdrasil/tcpip.go | 23 +++++++++++++++-------- 3 files changed, 24 insertions(+), 17 deletions(-) diff --git a/src/go.mod b/src/go.mod index 2578a2d..d0f687c 100644 --- a/src/go.mod +++ b/src/go.mod @@ -17,7 +17,7 @@ require ( golang.org/x/net v0.27.0 golang.org/x/sys v0.22.0 golang.org/x/term v0.22.0 - gvisor.dev/gvisor v0.0.0-20230428223346-f33f75cda699 + gvisor.dev/gvisor v0.0.0-20240723001103-634ce95eed8d lukechampine.com/blake3 v1.3.0 ) @@ -26,7 +26,7 @@ require ( github.com/bits-and-blooms/bitset v1.13.0 // indirect github.com/bits-and-blooms/bloom/v3 v3.7.0 // indirect github.com/go-task/slim-sprig v0.0.0-20230315185526-52ccab3ef572 // indirect - github.com/google/btree v1.0.1 // indirect + github.com/google/btree v1.1.2 // indirect github.com/google/pprof v0.0.0-20210407192527-94a9f03dee38 // indirect github.com/klauspost/cpuid/v2 v2.2.8 // indirect github.com/onsi/ginkgo/v2 v2.9.5 // indirect @@ -39,6 +39,6 @@ require ( golang.org/x/tools v0.21.1-0.20240508182429-e35e4ccd0d2d // indirect ) -go 1.21 +go 1.22.0 toolchain go1.22.5 diff --git a/src/go.sum b/src/go.sum index 7c01039..825884b 100644 --- a/src/go.sum +++ b/src/go.sum @@ -29,8 +29,8 @@ github.com/golang/protobuf v1.5.3 h1:KhyjKVUg7Usr/dYsdSqoFveMYd5ko72D+zANwlG1mmg github.com/golang/protobuf v1.5.3/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY= github.com/gologme/log v1.3.0 h1:l781G4dE+pbigClDSDzSaaYKtiueHCILUa/qSDsmHAo= github.com/gologme/log v1.3.0/go.mod h1:yKT+DvIPdDdDoPtqFrFxheooyVmoqi0BAsw+erN3wA4= -github.com/google/btree v1.0.1 h1:gK4Kx5IaGY9CD5sPJ36FHiBJ6ZXl0kilRiiCj+jdYp4= -github.com/google/btree v1.0.1/go.mod h1:xXMiIv4Fb/0kKde4SpL7qlzvu5cMJDRkFDxJfI9uaxA= +github.com/google/btree v1.1.2 h1:xf4v41cLI2Z6FxbKm+8Bu+m8ifhj15JuZ9sa0jZCMUU= +github.com/google/btree v1.1.2/go.mod h1:qOPhT0dTNdNzV6Z/lhRX0YXUafgPLFUh+gZMl761Gm4= github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI= github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= github.com/google/pprof v0.0.0-20210407192527-94a9f03dee38 h1:yAJXTCF9TqKcTiHJAE8dj7HMvPfh66eeA2JYW7eFpSE= @@ -135,15 +135,15 @@ golang.org/x/tools v0.6.0/go.mod h1:Xwgl3UAJ/d3gWutnCtw505GrjyAbvKui8lOU390QaIU= golang.org/x/tools v0.21.1-0.20240508182429-e35e4ccd0d2d h1:vU5i/LfpvrRCpgM/VPfJLg5KjxD3E+hfT1SH+d9zLwg= golang.org/x/tools v0.21.1-0.20240508182429-e35e4ccd0d2d/go.mod h1:aiJjzUbINMkxbQROHiO6hDPo2LHcIPhhQsa9DLh0yGk= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= -google.golang.org/protobuf v1.28.2-0.20230118093459-a9481185b34d h1:qp0AnQCvRCMlu9jBjtdbTaaEmThIgZOrbVyDEOcmKhQ= -google.golang.org/protobuf v1.28.2-0.20230118093459-a9481185b34d/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= +google.golang.org/protobuf v1.32.0 h1:pPC6BG5ex8PDFnkbrGU3EixyhKcQ2aDuBS36lqK/C7I= +google.golang.org/protobuf v1.32.0/go.mod h1:c6P6GXX6sHbq/GpV6MGZEdwhWPcYBgnhAHhKbcUYpos= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q= gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= -gvisor.dev/gvisor v0.0.0-20230428223346-f33f75cda699 h1:Ns93L6u6C3xgQY2eodedE2ZgIW8JaQYExfHdACX1BJc= -gvisor.dev/gvisor v0.0.0-20230428223346-f33f75cda699/go.mod h1:pzr6sy8gDLfVmDAg8OYrlKvGEHw5C3PGTiBXBTCx76Q= +gvisor.dev/gvisor v0.0.0-20240723001103-634ce95eed8d h1:cotv1311nrTN4xLRbN9lSEFcZwJ8GLNI+tB1pGd7mQ4= +gvisor.dev/gvisor v0.0.0-20240723001103-634ce95eed8d/go.mod h1:sxc3Uvk/vHcd3tj7/DHVBoR5wvWT/MmRq2pj7HRJnwU= lukechampine.com/blake3 v1.3.0 h1:sJ3XhFINmHSrYCgl958hscfIa3bw8x4DqMP3u1YvoYE= lukechampine.com/blake3 v1.3.0/go.mod h1:0OFRp7fBtAylGVCO40o87sbupkyIGgbpv1+M1k1LM6k= diff --git a/src/yggdrasil/tcpip.go b/src/yggdrasil/tcpip.go index 03a7935..1af0dff 100644 --- a/src/yggdrasil/tcpip.go +++ b/src/yggdrasil/tcpip.go @@ -29,7 +29,7 @@ import ( iwt "github.com/Arceliar/ironwood/types" yaddr "github.com/yggdrasil-network/yggdrasil-go/src/address" "golang.org/x/crypto/ed25519" - "gvisor.dev/gvisor/pkg/bufferv2" + "gvisor.dev/gvisor/pkg/buffer" "gvisor.dev/gvisor/pkg/tcpip" "gvisor.dev/gvisor/pkg/tcpip/adapters/gonet" "gvisor.dev/gvisor/pkg/tcpip/header" @@ -58,6 +58,8 @@ func (e *TCPIPEndpoint) IsAttached() bool { return e.d != nil } func (e *TCPIPEndpoint) MTU() uint32 { return e.mtu } +func (e *TCPIPEndpoint) SetMTU(mtu uint32) { e.mtu = mtu } + func (*TCPIPEndpoint) Capabilities() stack.LinkEndpointCapabilities { return stack.CapabilityNone } func (*TCPIPEndpoint) MaxHeaderLength() uint16 { return 0 } @@ -66,7 +68,13 @@ func (*TCPIPEndpoint) LinkAddress() tcpip.LinkAddress { return "" } func (*TCPIPEndpoint) Wait() {} -func (e *TCPIPEndpoint) WritePacket(pkt stack.PacketBufferPtr) tcpip.Error { +func (*TCPIPEndpoint) ParseHeader(*stack.PacketBuffer) bool { return false } + +func (*TCPIPEndpoint) SetLinkAddress(addr tcpip.LinkAddress) {} + +func (*TCPIPEndpoint) SetOnCloseAction(func()) {} + +func (e *TCPIPEndpoint) WritePacket(pkt *stack.PacketBuffer) tcpip.Error { v := pkt.ToView() n, err := v.Read(e.writeBuf) if err != nil { @@ -99,12 +107,12 @@ func (e *TCPIPEndpoint) WritePackets(pbs stack.PacketBufferList) (int, tcpip.Err func (*TCPIPEndpoint) ARPHardwareType() header.ARPHardwareType { return header.ARPHardwareNone } -func (e *TCPIPEndpoint) AddHeader(stack.PacketBufferPtr) {} +func (e *TCPIPEndpoint) AddHeader(*stack.PacketBuffer) {} func convertToFullAddr(ip net.IP, port int) (tcpip.FullAddress, tcpip.NetworkProtocolNumber) { return tcpip.FullAddress{ NIC: 1, - Addr: tcpip.Address(ip), + Addr: tcpip.AddrFrom16Slice(ip.To16()[:]), Port: uint16(port), }, ipv6.ProtocolNumber } @@ -125,9 +133,8 @@ func (e *TCPIPEndpoint) ListenTCP(addr *net.TCPAddr) (*gonet.TCPListener, error) return gonet.ListenTCP(e.s, fa, pn) } -func (e *TCPIPEndpoint) Close() error { +func (e *TCPIPEndpoint) Close() { e.s.RemoveNIC(1) - return nil } func NewTCPIPEndpoint( @@ -154,7 +161,7 @@ func NewTCPIPEndpoint( } protoAddr := tcpip.ProtocolAddress{ Protocol: ipv6.ProtocolNumber, - AddressWithPrefix: tcpip.Address(ipOur).WithPrefix(), + AddressWithPrefix: tcpip.AddrFrom16Slice(ipOur.To16()[:]).WithPrefix(), } if err := s.AddProtocolAddress(1, protoAddr, stack.AddressProperties{}); err != nil { return nil, fmt.Errorf("%+v", err) @@ -179,7 +186,7 @@ func NewTCPIPEndpoint( e.ipToAddr[ip] = from } pkb := stack.NewPacketBuffer(stack.PacketBufferOptions{ - Payload: bufferv2.MakeWithData(e.readBuf[:n]), + Payload: buffer.MakeWithData(e.readBuf[:n]), }) e.d.DeliverNetworkPacket(ipv6.ProtocolNumber, pkb) } -- 2.48.1