Fix gVisor process
This commit is contained in:
parent
46aa536b37
commit
c569e3e92f
5 changed files with 22 additions and 19 deletions
|
|
@ -38,7 +38,7 @@ func NewUDPForwarder(ctx context.Context, stack *stack.Stack, handler Handler, t
|
||||||
stack: stack,
|
stack: stack,
|
||||||
handler: handler,
|
handler: handler,
|
||||||
}
|
}
|
||||||
forwarder.udpNat = udpnat.New(handler, forwarder.PreparePacketConnection, timeout, true)
|
forwarder.udpNat = udpnat.New(handler, forwarder.PreparePacketConnection, timeout, false)
|
||||||
return forwarder
|
return forwarder
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -130,7 +130,7 @@ func (m *Mixed) wintunLoop(winTun WinTun) {
|
||||||
|
|
||||||
func (m *Mixed) batchLoopLinux(linuxTUN LinuxTUN, batchSize int) {
|
func (m *Mixed) batchLoopLinux(linuxTUN LinuxTUN, batchSize int) {
|
||||||
packetBuffers := make([][]byte, batchSize)
|
packetBuffers := make([][]byte, batchSize)
|
||||||
writeBuffers := make([][]byte, batchSize)
|
writeBuffers := make([][]byte, 0, batchSize)
|
||||||
packetSizes := make([]int, batchSize)
|
packetSizes := make([]int, batchSize)
|
||||||
for i := range packetBuffers {
|
for i := range packetBuffers {
|
||||||
packetBuffers[i] = make([]byte, m.mtu+PacketOffset+m.frontHeadroom)
|
packetBuffers[i] = make([]byte, m.mtu+PacketOffset+m.frontHeadroom)
|
||||||
|
|
|
||||||
|
|
@ -229,7 +229,7 @@ func (s *System) wintunLoop(winTun WinTun) {
|
||||||
|
|
||||||
func (s *System) batchLoopLinux(linuxTUN LinuxTUN, batchSize int) {
|
func (s *System) batchLoopLinux(linuxTUN LinuxTUN, batchSize int) {
|
||||||
packetBuffers := make([][]byte, batchSize)
|
packetBuffers := make([][]byte, batchSize)
|
||||||
writeBuffers := make([][]byte, batchSize)
|
writeBuffers := make([][]byte, 0, batchSize)
|
||||||
packetSizes := make([]int, batchSize)
|
packetSizes := make([]int, batchSize)
|
||||||
for i := range packetBuffers {
|
for i := range packetBuffers {
|
||||||
packetBuffers[i] = make([]byte, s.mtu+s.frontHeadroom)
|
packetBuffers[i] = make([]byte, s.mtu+s.frontHeadroom)
|
||||||
|
|
|
||||||
|
|
@ -45,6 +45,7 @@ func (t *NativeTun) NewEndpoint() (stack.LinkEndpoint, stack.NICOptions, error)
|
||||||
ep, err := fdbased.New(&fdbased.Options{
|
ep, err := fdbased.New(&fdbased.Options{
|
||||||
FDs: []int{t.tunFd},
|
FDs: []int{t.tunFd},
|
||||||
MTU: t.options.MTU,
|
MTU: t.options.MTU,
|
||||||
|
ProcessorsPerChannel: 1,
|
||||||
RXChecksumOffload: true,
|
RXChecksumOffload: true,
|
||||||
PacketDispatchMode: fdbased.RecvMMsg,
|
PacketDispatchMode: fdbased.RecvMMsg,
|
||||||
MultiPendingPackets: t.options.EXP_MultiPendingPackets,
|
MultiPendingPackets: t.options.EXP_MultiPendingPackets,
|
||||||
|
|
|
||||||
|
|
@ -76,6 +76,7 @@ func (t *NativeTun) NewEndpoint() (stack.LinkEndpoint, stack.NICOptions, error)
|
||||||
ep, err := fdbased.New(&fdbased.Options{
|
ep, err := fdbased.New(&fdbased.Options{
|
||||||
FDs: []int{t.tunFd},
|
FDs: []int{t.tunFd},
|
||||||
MTU: t.options.MTU,
|
MTU: t.options.MTU,
|
||||||
|
ProcessorsPerChannel: 1,
|
||||||
GSOMaxSize: gsoMaxSize,
|
GSOMaxSize: gsoMaxSize,
|
||||||
GRO: true,
|
GRO: true,
|
||||||
RXChecksumOffload: true,
|
RXChecksumOffload: true,
|
||||||
|
|
@ -89,6 +90,7 @@ func (t *NativeTun) NewEndpoint() (stack.LinkEndpoint, stack.NICOptions, error)
|
||||||
ep, err := fdbased.New(&fdbased.Options{
|
ep, err := fdbased.New(&fdbased.Options{
|
||||||
FDs: []int{t.tunFd},
|
FDs: []int{t.tunFd},
|
||||||
MTU: t.options.MTU,
|
MTU: t.options.MTU,
|
||||||
|
ProcessorsPerChannel: 1,
|
||||||
RXChecksumOffload: true,
|
RXChecksumOffload: true,
|
||||||
TXChecksumOffload: t.txChecksumOffload,
|
TXChecksumOffload: t.txChecksumOffload,
|
||||||
})
|
})
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue