summaryrefslogtreecommitdiff
path: root/accel-pppd/accel-ppp.conf.5
diff options
context:
space:
mode:
authorVladislav Grishenko <themiron@mail.ru>2026-07-30 15:48:55 +0500
committerVladislav Grishenko <themiron@mail.ru>2026-08-03 01:06:01 +0500
commitf2606293c1007aa68a8bcf1e92ae3d64e250eadb (patch)
treea804a66f12bf586f3724d959b40dab40e0862244 /accel-pppd/accel-ppp.conf.5
parent332daf3705c8f6ec2e04e041261f86ba7b8650a6 (diff)
downloadaccel-ppp-sstp-ppposeq.tar.gz
accel-ppp-sstp-ppposeq.zip
sstp: add ppposeq transport to avoid userspace HDLC framingsstp-ppposeq
A pty is a byte stream, so the tty flip buffer merges frames written back to back and sstp has to re-delimit them with async HDLC escaping and a CRC-16 FCS. On a 1452-byte payload that is ~3600 ns per frame, most of it spent on the FCS. PPPOSEQ is a pppox protocol whose socket is the ppp endpoint itself, so one datagram is one frame and no framing is needed at all. The same payload takes ~380 ns per frame, about 9 times less. Requires kernel 2.6.37, the first with PX_MAX_PROTO 3, whose remaining slot it claims. Supported kernels are from 2.6.37 to 7.2. The new ppp-mode option selects the transport; auto, the default, falls back to async when the module is unavailable, so hosts with prebuilt kernels are unaffected. PPP_SYNC is removed, being disabled and unfixable over a pty: frame boundaries cannot be recovered from the stream, and coalescing cannot be prevented since frames arrive from the network stack.
Diffstat (limited to 'accel-pppd/accel-ppp.conf.5')
-rw-r--r--accel-pppd/accel-ppp.conf.517
1 files changed, 16 insertions, 1 deletions
diff --git a/accel-pppd/accel-ppp.conf.5 b/accel-pppd/accel-ppp.conf.5
index bfe97e38..bcddfed4 100644
--- a/accel-pppd/accel-ppp.conf.5
+++ b/accel-pppd/accel-ppp.conf.5
@@ -995,11 +995,26 @@ Timeout waiting reply from client in seconds.
Default is 60.
.TP
.BI "hello-interval=" n
-If this option is given and greater than zero then sstp will send echo-request every
+If this option is given and greater than zero then sstp will send echo-request every
.B n
seconds and drop connection without a reply.
Default is 60.
.TP
+.BI "ppp-mode=" auto|seqpacket|async
+Specifies transport between sstp and the kernel ppp layer.
+.br
+.B seqpacket
+- use the ppposeq module. One datagram carries one ppp frame, so no
+HDLC framing is done in userspace.
+.br
+.B async
+- use a pty with ppp_async and frame in userspace. Works on any kernel.
+.br
+.B auto
+- use seqpacket if the module is available, otherwise async.
+.br
+Default is auto.
+.TP
.BI "accept=" ssl,proxy
Specifies incoming connection acceptance mode.
.br