Skip to content

Commit bf17d71

Browse files
committed
netstack: reenable all stackopts
1 parent a6d4741 commit bf17d71

File tree

1 file changed

+32
-34
lines changed

1 file changed

+32
-34
lines changed

intra/netstack/stackopts.go

Lines changed: 32 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@
77
package netstack
88

99
import (
10-
"github.com/celzero/firestack/intra/settings"
1110
"gvisor.dev/gvisor/pkg/tcpip"
1211
"gvisor.dev/gvisor/pkg/tcpip/network/ipv4"
1312
"gvisor.dev/gvisor/pkg/tcpip/network/ipv6"
@@ -19,38 +18,37 @@ func SetNetstackOpts(s *stack.Stack) {
1918
// TODO: other stack otps?
2019
// github.com/xjasonlyu/tun2socks/blob/31468620e/core/option/option.go#L69
2120

22-
if settings.GetDialerOpts().LowerKeepAlive {
23-
// TODO: setup protocol opts?
24-
// github.com/google/gvisor/blob/ef9e8d91/test/benchmarks/tcp/tcp_proxy.go#L233
25-
sack := tcpip.TCPSACKEnabled(true)
26-
_ = s.SetTransportProtocolOption(tcp.ProtocolNumber, &sack)
27-
28-
// from: github.com/telepresenceio/telepresence/blob/ab7dda7d55/pkg/vif/stack.go#L232
29-
// Enable Receive Buffer Auto-Tuning, see: github.com/google/gvisor/issues/1666
30-
bufauto := tcpip.TCPModerateReceiveBufferOption(true)
31-
_ = s.SetTransportProtocolOption(tcp.ProtocolNumber, &bufauto)
32-
33-
// coder.com/blog/delivering-5x-faster-throughput-in-coder-2-12-0
34-
ccopt := tcpip.CongestionControlOption("cubic")
35-
_ = s.SetTransportProtocolOption(tcp.ProtocolNumber, &ccopt)
36-
37-
ttl := tcpip.DefaultTTLOption(128)
38-
s.SetNetworkProtocolOption(ipv4.ProtocolNumber, &ttl)
39-
s.SetNetworkProtocolOption(ipv6.ProtocolNumber, &ttl)
40-
41-
// github.com/tailscale/tailscale/blob/c4d0237e5c/wgengine/netstack/netstack_tcpbuf_default.go
42-
tcpRXBufOpt := tcpip.TCPReceiveBufferSizeRangeOption{
43-
Min: tcp.MinBufferSize,
44-
Default: tcp.DefaultSendBufferSize,
45-
Max: 8 << 20, // 8MiB
46-
}
47-
tcpTXBufOpt := tcpip.TCPSendBufferSizeRangeOption{
48-
Min: tcp.MinBufferSize,
49-
Default: tcp.DefaultReceiveBufferSize,
50-
Max: 6 << 20, // 6MiB
51-
}
52-
// github.com/tailscale/tailscale/blob/c4d0237e5c/wgengine/netstack/netstack.go#L329
53-
_ = s.SetTransportProtocolOption(tcp.ProtocolNumber, &tcpRXBufOpt)
54-
_ = s.SetTransportProtocolOption(tcp.ProtocolNumber, &tcpTXBufOpt)
21+
// TODO: setup protocol opts?
22+
// github.com/google/gvisor/blob/ef9e8d91/test/benchmarks/tcp/tcp_proxy.go#L233
23+
sack := tcpip.TCPSACKEnabled(true)
24+
_ = s.SetTransportProtocolOption(tcp.ProtocolNumber, &sack)
25+
26+
// from: github.com/telepresenceio/telepresence/blob/ab7dda7d55/pkg/vif/stack.go#L232
27+
// Enable Receive Buffer Auto-Tuning, see: github.com/google/gvisor/issues/1666
28+
bufauto := tcpip.TCPModerateReceiveBufferOption(true)
29+
_ = s.SetTransportProtocolOption(tcp.ProtocolNumber, &bufauto)
30+
31+
// probably a bad idea? github.com/tailscale/tailscale/blob/9d9a70d81d/wgengine/netstack/netstack.go#L330
32+
// coder.com/blog/delivering-5x-faster-throughput-in-coder-2-12-0
33+
// ccopt := tcpip.CongestionControlOption("cubic")
34+
// _ = s.SetTransportProtocolOption(tcp.ProtocolNumber, &ccopt)
35+
36+
ttl := tcpip.DefaultTTLOption(128)
37+
s.SetNetworkProtocolOption(ipv4.ProtocolNumber, &ttl)
38+
s.SetNetworkProtocolOption(ipv6.ProtocolNumber, &ttl)
39+
40+
// github.com/tailscale/tailscale/blob/c4d0237e5c/wgengine/netstack/netstack_tcpbuf_default.go
41+
tcpRXBufOpt := tcpip.TCPReceiveBufferSizeRangeOption{
42+
Min: tcp.MinBufferSize,
43+
Default: tcp.DefaultSendBufferSize,
44+
Max: 8 << 20, // 8MiB
5545
}
46+
tcpTXBufOpt := tcpip.TCPSendBufferSizeRangeOption{
47+
Min: tcp.MinBufferSize,
48+
Default: tcp.DefaultReceiveBufferSize,
49+
Max: 6 << 20, // 6MiB
50+
}
51+
// github.com/tailscale/tailscale/blob/c4d0237e5c/wgengine/netstack/netstack.go#L329
52+
_ = s.SetTransportProtocolOption(tcp.ProtocolNumber, &tcpRXBufOpt)
53+
_ = s.SetTransportProtocolOption(tcp.ProtocolNumber, &tcpTXBufOpt)
5654
}

0 commit comments

Comments
 (0)