You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
26 lines
1009 B
26 lines
1009 B
PPPoPPTP-Android plugin
|
|
=======================
|
|
|
|
This plugin was written for AOSP project from scratch. It has nothing to do with
|
|
accel-pptp plugin [1].
|
|
|
|
This plugin adds support for upstream kernel PPTP implementation in pppd daemon.
|
|
Only PNS (client) part of PPTP is implemented, as we don't use Android devices
|
|
in PAC mode.
|
|
|
|
In general case, the execution flow for VPN startup on Android devices is:
|
|
1. Run PPTP client (mtpd)
|
|
2. mtpd obtains remote Call ID on OCRP (Outgoing-Call-Reply) packet
|
|
3. mtpd creates PPTP socket
|
|
4. mtpd runs pppd, passing PPTP socket as to pppopptp-android (as parameter)
|
|
5. pppd dlopen() pppopptp-android plugin (because it received corresponding
|
|
arguments from mtpd)
|
|
|
|
Main task of this plugin is to obtain PPTP socket FD from mtpd and pass it
|
|
back to pppd when .connect() callback is executed.
|
|
|
|
All control packets are handled in mtpd. PPP packets (like LCP) are handled in
|
|
pppd. Data packets are handled by kernel PPTP driver.
|
|
|
|
[1] http://accel-pptp.sourceforge.net/
|