Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 21 Mar 2008 11:40:48 -0700
From:      Julian Elischer <julian@elischer.org>
To:        Brett Glass <brett@lariat.net>
Cc:        net@freebsd.org
Subject:   Re: GRE Mux
Message-ID:  <47E40130.1000901@elischer.org>
In-Reply-To: <200803211547.JAA28265@lariat.net>
References:  <200803211547.JAA28265@lariat.net>

next in thread | previous in thread | raw e-mail | index | archive | help
Brett Glass wrote:
> Everyone:
> 
> I have recently been building FreeBSD VPN servers which can accept 50 to 
> 100 PPTP connections. PPTP is, essentially, PPP over GRE (with a TCP 
> control connection), so we have large numbers of packets passing in and 
> out using GRE. Unfortunately, GRE on FreeBSD doesn't currently have a 
> multiplexing function as does TCP. If userland PPP and pptpd are used to 
> handle the PPTP sessions, each GRE packet is passed to the first pptpd 
> process. If the call ID doesn't match, it's passed to the next, and then 
> the next, and so on. What's more, each test requires a "bounce" into and 
> out of the kernel. mpd, which uses netgraph, does more of the work 
> within the kernel, but the testing still takes place in linear time -- 
> and the potential delay increases with the number of PPTP sessions that 
> have been established. The packet is bounced from one netgraph node to 
> another until one of them accepts it or the packet falls off the end of 
> the chain.
> 
> It seems to me that it might be worth it to implement a multiplexing 
> function that dispatches the packet directly to the right process or 
> netgraph node rather than passing it from hand to hand. Thoughts?

if it takes you more than 1 day to write a netgraph function to do it 
you are taking too many coffee breaks.

mpd could probably do it automatically as it already does a lot of
netgraph munging.


> 
> --Brett Glass
> 
> _______________________________________________
> freebsd-net@freebsd.org mailing list
> http://lists.freebsd.org/mailman/listinfo/freebsd-net
> To unsubscribe, send any mail to "freebsd-net-unsubscribe@freebsd.org"




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?47E40130.1000901>