summaryrefslogtreecommitdiff
path: root/app/src
diff options
context:
space:
mode:
authorcyBerta <cyberta@riseup.net>2025-02-13 21:12:28 +0100
committercyBerta <cyberta@riseup.net>2025-02-13 21:12:28 +0100
commited86e2b04190989288470793da194023693cc48f (patch)
tree54b2d0edc9d8881f007f8b2951ca1716980b3730 /app/src
parent41ec0cf6956c1f92d3c29424cf6d05a24e59bcb0 (diff)
fix kcp performance by fixing default kcp values and extending model class to existing config parameters available in obfsvpn
Diffstat (limited to 'app/src')
-rw-r--r--app/src/main/java/se/leap/bitmaskclient/pluggableTransports/models/KcpConfig.java24
-rw-r--r--app/src/test/java/se/leap/bitmaskclient/pluggableTransports/models/KcpConfigTest.java15
2 files changed, 26 insertions, 13 deletions
diff --git a/app/src/main/java/se/leap/bitmaskclient/pluggableTransports/models/KcpConfig.java b/app/src/main/java/se/leap/bitmaskclient/pluggableTransports/models/KcpConfig.java
index 255e7dd7..f056394d 100644
--- a/app/src/main/java/se/leap/bitmaskclient/pluggableTransports/models/KcpConfig.java
+++ b/app/src/main/java/se/leap/bitmaskclient/pluggableTransports/models/KcpConfig.java
@@ -5,27 +5,25 @@ import androidx.annotation.NonNull;
import com.google.gson.FieldNamingPolicy;
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
+import com.google.gson.annotations.SerializedName;
public class KcpConfig {
- // check OpenVPN's --sndbuf size and --rcvbuf size
- public static final int DEFAULT_KCP_SEND_WINDOW_SIZE = 32;
- public static final int DEFAULT_KCP_RECEIVE_WINDOW_SIZE = 32;
- public static final int DEFAULT_KCP_READ_BUFFER = 16 * 1024 * 1024;
- public static final int DEFAULT_KCP_WRITE_BUFFER = 16 * 1024 * 1024;
final boolean enabled;
- final int sendWindowSize;
- final int receiveWindowSize;
- final int readBuffer;
- final int writeBuffer;
+ final int sendWindowSize = 65535;
+ final int receiveWindowSize = 65535;
+ final int readBuffer = 16 * 1024 * 1024;
+ final int writeBuffer = 16 * 1024 * 1024;
+ final boolean noDelay = true;
+ final boolean disableFlowControl = true;
+ final int interval = 10;
+ final int resend = 2;
+ @SerializedName("mtu")
+ final int MTU = 1400;
public KcpConfig(boolean enabled) {
this.enabled = enabled;
- this.sendWindowSize = DEFAULT_KCP_SEND_WINDOW_SIZE;
- this.receiveWindowSize = DEFAULT_KCP_RECEIVE_WINDOW_SIZE;
- this.readBuffer = DEFAULT_KCP_READ_BUFFER;
- this.writeBuffer = DEFAULT_KCP_WRITE_BUFFER;
}
@NonNull
diff --git a/app/src/test/java/se/leap/bitmaskclient/pluggableTransports/models/KcpConfigTest.java b/app/src/test/java/se/leap/bitmaskclient/pluggableTransports/models/KcpConfigTest.java
new file mode 100644
index 00000000..9310fd89
--- /dev/null
+++ b/app/src/test/java/se/leap/bitmaskclient/pluggableTransports/models/KcpConfigTest.java
@@ -0,0 +1,15 @@
+package se.leap.bitmaskclient.pluggableTransports.models;
+
+import static org.junit.Assert.*;
+
+import org.junit.Test;
+
+public class KcpConfigTest {
+
+ private static final String KCP_DEFAULTS = "{\"enabled\":true,\"send_window_size\":65535,\"receive_window_size\":65535,\"read_buffer\":16777216,\"write_buffer\":16777216,\"no_delay\":true,\"disable_flow_control\":true,\"interval\":10,\"resend\":2,\"mtu\":1400}";
+ @Test
+ public void testToString() {
+ KcpConfig config = new KcpConfig(true);
+ assertEquals(KCP_DEFAULTS, config.toString());
+ }
+} \ No newline at end of file