Remove VPN_PMTUD option

This commit is contained in:
Quentin McGaw
2025-10-03 14:21:38 +00:00
parent c0ebd180cb
commit f0f3193c1c
4 changed files with 7 additions and 26 deletions

View File

@@ -77,7 +77,6 @@ ENV VPN_SERVICE_PROVIDER=pia \
VPN_TYPE=openvpn \ VPN_TYPE=openvpn \
# Common VPN options # Common VPN options
VPN_INTERFACE=tun0 \ VPN_INTERFACE=tun0 \
VPN_PMTUD=on \
# OpenVPN # OpenVPN
OPENVPN_ENDPOINT_IP= \ OPENVPN_ENDPOINT_IP= \
OPENVPN_ENDPOINT_PORT= \ OPENVPN_ENDPOINT_PORT= \

View File

@@ -18,7 +18,6 @@ type VPN struct {
Provider Provider `json:"provider"` Provider Provider `json:"provider"`
OpenVPN OpenVPN `json:"openvpn"` OpenVPN OpenVPN `json:"openvpn"`
Wireguard Wireguard `json:"wireguard"` Wireguard Wireguard `json:"wireguard"`
PMTUD *bool `json:"pmtud"`
} }
// TODO v4 remove pointer for receiver (because of Surfshark). // TODO v4 remove pointer for receiver (because of Surfshark).
@@ -55,7 +54,6 @@ func (v *VPN) Copy() (copied VPN) {
Provider: v.Provider.copy(), Provider: v.Provider.copy(),
OpenVPN: v.OpenVPN.copy(), OpenVPN: v.OpenVPN.copy(),
Wireguard: v.Wireguard.copy(), Wireguard: v.Wireguard.copy(),
PMTUD: gosettings.CopyPointer(v.PMTUD),
} }
} }
@@ -64,7 +62,6 @@ func (v *VPN) OverrideWith(other VPN) {
v.Provider.overrideWith(other.Provider) v.Provider.overrideWith(other.Provider)
v.OpenVPN.overrideWith(other.OpenVPN) v.OpenVPN.overrideWith(other.OpenVPN)
v.Wireguard.overrideWith(other.Wireguard) v.Wireguard.overrideWith(other.Wireguard)
v.PMTUD = gosettings.OverrideWithPointer(v.PMTUD, other.PMTUD)
} }
func (v *VPN) setDefaults() { func (v *VPN) setDefaults() {
@@ -72,7 +69,6 @@ func (v *VPN) setDefaults() {
v.Provider.setDefaults() v.Provider.setDefaults()
v.OpenVPN.setDefaults(v.Provider.Name) v.OpenVPN.setDefaults(v.Provider.Name)
v.Wireguard.setDefaults(v.Provider.Name) v.Wireguard.setDefaults(v.Provider.Name)
v.PMTUD = gosettings.DefaultPointer(v.PMTUD, true)
} }
func (v VPN) String() string { func (v VPN) String() string {
@@ -90,8 +86,6 @@ func (v VPN) toLinesNode() (node *gotree.Node) {
node.AppendNode(v.Wireguard.toLinesNode()) node.AppendNode(v.Wireguard.toLinesNode())
} }
node.Appendf("Path MTU discovery update: %s", gosettings.BoolToYesNo(v.PMTUD))
return node return node
} }
@@ -113,10 +107,5 @@ func (v *VPN) read(r *reader.Reader) (err error) {
return fmt.Errorf("wireguard: %w", err) return fmt.Errorf("wireguard: %w", err)
} }
v.PMTUD, err = r.BoolPtr("VPN_PMTUD")
if err != nil {
return err
}
return nil return nil
} }

View File

@@ -47,7 +47,6 @@ func (l *Loop) Run(ctx context.Context, done chan<- struct{}) {
continue continue
} }
tunnelUpData := tunnelUpData{ tunnelUpData := tunnelUpData{
PMTUD: *settings.PMTUD,
serverIP: connection.IP, serverIP: connection.IP,
vpnType: settings.Type, vpnType: settings.Type,
serverName: connection.ServerName, serverName: connection.ServerName,

View File

@@ -18,10 +18,6 @@ type tunnelUpData struct {
// vpnIntf is the name of the VPN network interface // vpnIntf is the name of the VPN network interface
// which is used both for port forwarding and MTU discovery // which is used both for port forwarding and MTU discovery
vpnIntf string vpnIntf string
// Path MTU discovery fields:
// PMTUD indicates whether to perform Path MTU Discovery and
// adjust the VPN interface MTU accordingly.
PMTUD bool
// serverIP is used for path MTU discovery // serverIP is used for path MTU discovery
serverIP netip.Addr serverIP netip.Addr
// vpnType is used for path MTU discovery to find the protocol overhead. // vpnType is used for path MTU discovery to find the protocol overhead.
@@ -38,14 +34,12 @@ type tunnelUpData struct {
func (l *Loop) onTunnelUp(ctx context.Context, data tunnelUpData) { func (l *Loop) onTunnelUp(ctx context.Context, data tunnelUpData) {
l.client.CloseIdleConnections() l.client.CloseIdleConnections()
if data.PMTUD { mtuLogger := l.logger.New(log.SetComponent("MTU discovery"))
mtuLogger := l.logger.New(log.SetComponent("MTU discovery")) mtuLogger.Info("finding maximum MTU, this can take up to 4 seconds")
mtuLogger.Info("finding maximum MTU, this can take up to 4 seconds") err := updateToMaxMTU(ctx, data.vpnIntf, data.serverIP, data.vpnType,
err := updateToMaxMTU(ctx, data.vpnIntf, data.serverIP, data.vpnType, l.netLinker, mtuLogger)
l.netLinker, mtuLogger) if err != nil {
if err != nil { l.logger.Error(err.Error())
l.logger.Error(err.Error())
}
} }
for _, vpnPort := range l.vpnInputPorts { for _, vpnPort := range l.vpnInputPorts {
@@ -64,7 +58,7 @@ func (l *Loop) onTunnelUp(ctx context.Context, data tunnelUpData) {
} }
} }
err := l.publicip.RunOnce(ctx) err = l.publicip.RunOnce(ctx)
if err != nil { if err != nil {
l.logger.Error("getting public IP address information: " + err.Error()) l.logger.Error("getting public IP address information: " + err.Error())
} }