[OpenVPN home] [Date Prev] [Date Index] [Date Next]
[OpenVPN mailing lists] [Thread Prev] [Thread Index] [Thread Next]
Web openvpn.net

Re: [Openvpn-devel] OpenVPN multi instancing

  • Subject: Re: [Openvpn-devel] OpenVPN multi instancing
  • From: "James Yonan" <jim@xxxxxxxxx>
  • Date: Sat, 6 Mar 2004 06:14:10 -0000

Matthias Andree <ma+ovpnd@xxxxxxxxxxxxxxxxxxxxxxxxxxxx> said:

> On Sun, 29 Feb 2004, Christian Daniel wrote:
> > Hello everybody!
> > 
> > For a student research project I'm trying to add multi instance capability to 
> > OpenVPN. The basic idea is to rip the main openvpn()-function apart, put all 
> > variables in a struct and then have only one select()-call for all open 
> > tunnels at once.
> Oh. You're in for plentiful fun with the various select()
> "features"^Wbugs across the various operating system kernels.
> Better check out poll() and epoll() where available. These happen to
> (usually) be more scalable as the number of fds increases.

Luckily, UDP scales up fairly well without hitting up against the limitations
of select() since a single UDP socket can be used to communicate with an
unlimited number of clients.  TCP will be harder to scale with select()
because every incoming client will need its own socket.

I don't see how poll() is that much of an improvement over select() because it
still requires that you scan all the FDs to see which ones require service.

epoll() looks like a real improvement, and has obviously been designed with
scalability in mind.

It's too bad that poll and epoll move the timeout from microsecond to
millisecond resolution, as that makes things like traffic shaping harder to


Openvpn-devel mailing list