Overview -------- The ACCEL-PPTP is PPTP client/server based on POPTOP (http://www.poptop.org) and PPTPCLIENT (http://pptpclient.sourceforge.net). ACCEL-PPTP uses kernel module to increase performance and decrease system usage. For more documentation about PPTP visit POPTOP web site. ACCEL-PPTP was successfully tested on about 1200 connections and system usage has been decreased by ~50% on comparisons with the original poptop server. Requirment ---------- 1. modern linux distribution 1. kernel-2.6.15 or later with PPPoX support or kernel-2.4.x patched for PPPoX support (2.4.x not fully tested) 2. pppd-2.4.2 or later Compilation ----------- Make sure you have configured kernel headers in /usr/src/linux or /lib/modules/`uname -r`/build, or specify other location via KDIR environment variable make client - compiles only client's part of package make server - full compilation Insallation ----------- Do make client_install for installing pptp client. Do make server_install for installing pptp server. Configuration ------------- If you are beginner in PPTP please read documentation available on POPTOP web site. Configuration is same as original pptpd and pptp. Exception in configuration of client is: replace line in peer config file (for instance, /etc/ppp/peers/my_vpn): pty "pptp x.x.x.x ...." to plugin "pptp.so" pptp_server x.x.x.x pptp_phone xxxx (optional) pptp_window xxx (optional) - this is sliding window size (at current time automatic algorithm is not implemented), set it to 3-10 for low-speed connections, to >10 for hi-speed connections. Remove lock option in /etc/ppp/options.pptp, /etc/ppp/options.pptpd or similar if it exists. See configuration example in example directory. Warning !!! ----------- 1. This driver conflicts with ip_gre driver (in kernel), so make sure that ip_gre is not built-in or loaded at run time. 2. Never mix connections of accel-pptp and original pptpd, before starting accel-pptp make sure that no connections of original pptpd exists. 3. If you are switching from <2.6.23 to >=2.6.23 kernel or viĶe-versa then rebuild and reinstall entire package, not just kernel module. Kernel module ------------- Kernel module is available as separated module and as patch for kernel. You can use either separated module or patch for kernel. There is only patch for 2.6.18 kernel now. If you wish patch for other kernels please mail me. ppp_generic_smp --------------- This driver is replacement of kernel's ppp_generic for better smp performance. It is disables by default, to enable you should uncomment "#obj-m += ppp_generic_smp.o" in kernel/driver/Makefile. Thanks ------ Thanks to Kirill Yushkov for debug support and donations. http://accel-pptp.sourceforge.net/ mail: xeb@mail.ru, xeb@linux.vsi.ru ICQ: 337258064 Jabber: xeb@city.veganet.ru, xeb@linux.vsi.ru MDIR = extra KDIR ?= $(shell sh find_kernel_headers) obj-m += pptp.o CURRENT = $(shell uname -r) ifndef MAKING_MODULES all: kernel_headers make -C $(KDIR) SUBDIRS=$(PWD) modules endif ifneq (,$(findstring 2.4.,$(CURRENT))) install: @if test ! -d /lib/modules/$(CURRENT)/extra; then \ mkdir /lib/modules/$(CURRENT)/extra; \ fi; \ cp -v $(TARGET).o /lib/modules/$(CURRENT)/extra/$(TARGET).o && /sbin/depmod -a else install: make -C $(KDIR) SUBDIRS=$(PWD) modules_install endif kernel_headers: @if test -z "$(KDIR)"; then \ echo "kernel headers not found"; \ exit 1; \ else \ echo "using \"$(KDIR)\" kernel headers"; \ fi clean: -rm -f *.o *.ko .*.cmd .*.flags *.mod.c ifneq (,$(findstring 2.4.,$(CURRENT))) include $(KDIR)/Rules.make endif