Hi,

On Sat, Aug 16, 2025 at 09:38:13PM -0400, Jon Chiappetta via Openvpn-devel 
wrote:
> able to compile it and insmod it and I think OpenVPN auto picked it up even
> running in TCP mode I believe. I wanted to confirm, does this DCO module
> work with TCP mode or is it UDP client/server protocol only?

Linux and Windows DCO support TCP mode, FreeBSD DCO does not.

If you select options that are incompatible with DCO (like, "compress", or
"tcp" on FreeBSD) OpenVPN will log that and fall back to userland.

>  Also, I'm not
> very smart and I am unable to understand kernel-level C code as it is very
> abstract and generalized but I was trying to see what read/write buffer
> sizes it uses if I had a TUN MTU of 1500 bytes?

In Kernel, there is no real "read/write" involved.  There is a packet
coming in as part of a data structure, this gets processed, and the
data structure handed onwards.  So it always deals with "one full packet
at a time".

[..]
> I performed a speed test with it also but I could only get the same speed
> as my modified OpenVPN setup (~650Mbps over WiFi 6GHz@160MHz) so I think
> there is some other limiting factor elsewhere in my network setup. I don't
> have a wired client, only a U7-Pro and I am running the VPN client in the
> middle of my network on a Linux VM on a Mac Mini but it ran pretty smoothly
> and nicely assuming it was indeed working correctly.

Performance measurement is tough, especially with DCO involved, as you end
up measuring something else.  Like "how fast can the 'iperf' program go?"
(if you see 100% CPU usage by 'iperf', you know that OpenVPN is not the
limiting factor), or "how fast is your browser" with the online speed
tests.

> cd ovpn-dco-master/
> vim ./drivers/net/ovpn-dco/udp.c #CONFIG_IPV6 -> #ifdef CONFIG_IPV6_NO
> make
> cp -fv ./drivers/net/ovpn-dco/ovpn-dco-v2.ko ../
> modprobe udp_tunnel
> insmod /root/dco/ovpn-dco-v2.ko

... this is not really what you want, though.  It's the old module which
has been overhauled about 10 times before it was accepted into 6.16
upstream kernel.  So you might hit limitations in the kernel module.

The old module only works with OpenVPN 2.6, while the new module only
works with 2.7 (as of this writing, 2.7_alpha3, but "git master" will
also work).

gert
-- 
"If was one thing all people took for granted, was conviction that if you 
 feed honest figures into a computer, honest figures come out. Never doubted 
 it myself till I met a computer with a sense of humor."
                             Robert A. Heinlein, The Moon is a Harsh Mistress

Gert Doering - Munich, Germany                             g...@greenie.muc.de

Attachment: signature.asc
Description: PGP signature

_______________________________________________
Openvpn-devel mailing list
Openvpn-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/openvpn-devel

Reply via email to