• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1PPPoPPTP-Android plugin
2=======================
3
4This plugin was written for AOSP project from scratch. It has nothing to do with
5accel-pptp plugin [1].
6
7This plugin adds support for upstream kernel PPTP implementation in pppd daemon.
8Only PNS (client) part of PPTP is implemented, as we don't use Android devices
9in PAC mode.
10
11In general case, the execution flow for VPN startup on Android devices is:
12 1. Run PPTP client (mtpd)
13 2. mtpd obtains remote Call ID on OCRP (Outgoing-Call-Reply) packet
14 3. mtpd creates PPTP socket
15 4. mtpd runs pppd, passing PPTP socket as to pppopptp-android (as parameter)
16 5. pppd dlopen() pppopptp-android plugin (because it received corresponding
17    arguments from mtpd)
18
19Main task of this plugin is to obtain PPTP socket FD from mtpd and pass it
20back to pppd when .connect() callback is executed.
21
22All control packets are handled in mtpd. PPP packets (like LCP) are handled in
23pppd. Data packets are handled by kernel PPTP driver.
24
25[1] http://accel-pptp.sourceforge.net/
26