OpenVPN / OpenVPN/openvpn

replace --fast-io with something fast

Open
#934 0 comments 0 reactions 2 assignees View on GitHub

@ordex is already working on this.

Since Dec 10, 2025.

enhancement
Dominant language
C
Stars
14.6k
Forks
3.4k
PR merge metrics
No merged PRs in 30d

Description

So the idea behind --fast-io is to avoid an extra select() to decide whether or not the destination socket is ready to accept a packet, and "just try".

Having different flows here really complicates the event/packet handling code after multisocket merge, so it was decided to throw out --fast-io and make the rest easier to follow.

As a post-2.7 approach, one idea might be to report back all sockets that could accept packets (or have packets ready to read) and then do "as much in one go as is possible". We call select() anyway, but if I understand this correctly, we will only do "one packet read, then new select, then one packet write" which is even slower than necessary...

This issue is for brainstorming and for eventually coming up with code

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.