Fix create gVisor endpoint

This commit is contained in:
世界
2022-07-10 19:17:44 +08:00
parent b417bd5be4
commit 0ef2e330e3
3 changed files with 11 additions and 3 deletions

View File

@@ -3,14 +3,22 @@
package tun
import (
"runtime"
"gvisor.dev/gvisor/pkg/tcpip/link/fdbased"
"gvisor.dev/gvisor/pkg/tcpip/stack"
)
func NewEndpoint(tunFd uintptr, tunMtu uint32) (stack.LinkEndpoint, error) {
var packetDispatchMode fdbased.PacketDispatchMode
if runtime.GOARCH == "amd64" || runtime.GOARCH == "arm64" {
packetDispatchMode = fdbased.PacketMMap
} else {
packetDispatchMode = fdbased.RecvMMsg
}
return fdbased.New(&fdbased.Options{
FDs: []int{int(tunFd)},
MTU: tunMtu,
PacketDispatchMode: fdbased.PacketMMap,
PacketDispatchMode: packetDispatchMode,
})
}