summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorDavid Lönnhager <david.l@mullvad.net>2025-10-02 12:47:47 +0200
committerDavid Lönnhager <david.l@mullvad.net>2025-10-02 12:47:47 +0200
commitf603b77df6bb00270ef7ccfdf5c5c96a340851fe (patch)
tree306d6c1cdcf78d79b4225afb14bdfe4b395b1a64
parent4f18258ccf9a2e438ce3728a98bdf95a5401de2b (diff)
parent578f6ce23c1ac82c5eab83b6ee2c8c6833d2a8aa (diff)
downloadmullvadvpn-f603b77df6bb00270ef7ccfdf5c5c96a340851fe.tar.xz
mullvadvpn-f603b77df6bb00270ef7ccfdf5c5c96a340851fe.zip
Merge branch 'add-lwo-to-retry-order'
-rw-r--r--docs/relay-selector.md4
-rw-r--r--mullvad-relay-selector/src/relay_selector/mod.rs3
-rw-r--r--mullvad-relay-selector/tests/relay_selector.rs3
-rw-r--r--test/test-manager/src/tests/tunnel.rs2
4 files changed, 9 insertions, 3 deletions
diff --git a/docs/relay-selector.md b/docs/relay-selector.md
index f400a632a0..0d44d0fff3 100644
--- a/docs/relay-selector.md
+++ b/docs/relay-selector.md
@@ -59,6 +59,7 @@ constraints the following default ones will take effect
- The fourth attempt will connect to a Wireguard relay using QUIC for obfuscation
- The fifth attempt will connect to a Wireguard relay on a random port using [UDP2TCP obfuscation](https://github.com/mullvad/udp-over-tcp)
- The sixth attempt will connect to a Wireguard relay over IPv6 on a random port using UDP2TCP obfuscation (if IPv6 is configured on the host)
+- The seventh attempt will connect to a Wireguard relay using LWO
#### Tunnel protocol is OpenVPN
@@ -136,8 +137,7 @@ have bridges that support UDP tunnels over TCP bridges, this behavior should be
changing the tunnel constraints to ones that do not support bridges (WireGuard, OpenVPN over UDP)
will indirectly change the bridge state to _Auto_ if it was previously set to _On_.
-
### Obfuscator caveats
-There are three types of obfuscators - _udp2tcp_, _shadowsocks_ and _quic_.
+There are four types of obfuscators - _udp2tcp_, _shadowsocks_, _quic_, and _lwo_.
They are used if the obfuscation mode is set _Auto_ and the user has selected WireGuard to be the only tunnel protocol to be used.
diff --git a/mullvad-relay-selector/src/relay_selector/mod.rs b/mullvad-relay-selector/src/relay_selector/mod.rs
index b286d8f38b..d68e570c5c 100644
--- a/mullvad-relay-selector/src/relay_selector/mod.rs
+++ b/mullvad-relay-selector/src/relay_selector/mod.rs
@@ -80,6 +80,9 @@ pub static WIREGUARD_RETRY_ORDER: LazyLock<Vec<RelayQuery>> = LazyLock::new(|| {
.udp2tcp()
.ip_version(IpVersion::V6)
.build(),
+ // 7
+ #[cfg(not(target_os = "android"))]
+ RelayQueryBuilder::wireguard().lwo().build(),
]
});
diff --git a/mullvad-relay-selector/tests/relay_selector.rs b/mullvad-relay-selector/tests/relay_selector.rs
index 30115d136d..9249c371ea 100644
--- a/mullvad-relay-selector/tests/relay_selector.rs
+++ b/mullvad-relay-selector/tests/relay_selector.rs
@@ -340,6 +340,9 @@ fn assert_wireguard_retry_order() {
.udp2tcp()
.ip_version(IpVersion::V6)
.build(),
+ // 7
+ #[cfg(not(target_os = "android"))]
+ RelayQueryBuilder::wireguard().lwo().build(),
];
assert!(
diff --git a/test/test-manager/src/tests/tunnel.rs b/test/test-manager/src/tests/tunnel.rs
index 7cf23c1ef2..f4ac4e5285 100644
--- a/test/test-manager/src/tests/tunnel.rs
+++ b/test/test-manager/src/tests/tunnel.rs
@@ -329,7 +329,7 @@ pub async fn test_wireguard_over_quic_ipvx(
[ V4 ] [ test_wireguard_over_lwo_ipv4 ];
[ V6 ] [ test_wireguard_over_lwo_ipv6 ];
)]
-#[test_function(skip)]
+#[test_function]
pub async fn test_wireguard_over_lwo_ipvx(
_: TestContext,
rpc: ServiceClient,