From f1f626090e3b30d502ed1baae6b1d86853571a5b Mon Sep 17 00:00:00 2001 From: Mikael Magnusson Date: Fri, 22 Oct 2021 00:04:20 +0200 Subject: tun/netstack: update gvisor Update gvisor to v0.0.0-20211020211948-f76a604701b6, which requires some changes to tun.go: WriteRawPacket: Add function with not implemented error. CreateNetTUN: Replace stack.AddAddress with stack.AddProtocolAddress, and fix IPv6 address in error message. Signed-off-by: Mikael Magnusson Signed-off-by: Jason A. Donenfeld --- tun/netstack/tun.go | 20 ++++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) (limited to 'tun/netstack/tun.go') diff --git a/tun/netstack/tun.go b/tun/netstack/tun.go index 9d2e90a..24d0835 100644 --- a/tun/netstack/tun.go +++ b/tun/netstack/tun.go @@ -83,6 +83,10 @@ func (e *endpoint) WritePackets(stack.RouteInfo, stack.PacketBufferList, tcpip.N panic("not implemented") } +func (e *endpoint) WriteRawPacket(*stack.PacketBuffer) tcpip.Error { + panic("not implemented") +} + func (*endpoint) ARPHardwareType() header.ARPHardwareType { return header.ARPHardwareNone } @@ -109,15 +113,23 @@ func CreateNetTUN(localAddresses, dnsServers []net.IP, mtu int) (tun.Device, *Ne } for _, ip := range localAddresses { if ip4 := ip.To4(); ip4 != nil { - tcpipErr = dev.stack.AddAddress(1, ipv4.ProtocolNumber, tcpip.Address(ip4)) + protoAddr := tcpip.ProtocolAddress{ + Protocol: ipv4.ProtocolNumber, + AddressWithPrefix: tcpip.Address(ip4).WithPrefix(), + } + tcpipErr := dev.stack.AddProtocolAddress(1, protoAddr, stack.AddressProperties{}) if tcpipErr != nil { - return nil, nil, fmt.Errorf("AddAddress(%v): %v", ip4, tcpipErr) + return nil, nil, fmt.Errorf("AddProtocolAddress(%v): %v", ip4, tcpipErr) } dev.hasV4 = true } else { - tcpipErr = dev.stack.AddAddress(1, ipv6.ProtocolNumber, tcpip.Address(ip)) + protoAddr := tcpip.ProtocolAddress{ + Protocol: ipv6.ProtocolNumber, + AddressWithPrefix: tcpip.Address(ip).WithPrefix(), + } + tcpipErr := dev.stack.AddProtocolAddress(1, protoAddr, stack.AddressProperties{}) if tcpipErr != nil { - return nil, nil, fmt.Errorf("AddAddress(%v): %v", ip4, tcpipErr) + return nil, nil, fmt.Errorf("AddProtocolAddress(%v): %v", ip, tcpipErr) } dev.hasV6 = true } -- cgit v1.2.3-59-g8ed1b