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.
jianglk.darker 7ee447c011
v811_spc009_project
4 months ago
..
include v811_spc009_project 4 months ago
plugins v811_spc009_project 4 months ago
Android.bp v811_spc009_project 4 months ago
MODULE_LICENSE_BSD v811_spc009_project 4 months ago
Makefile.linux v811_spc009_project 4 months ago
Makefile.sol2 v811_spc009_project 4 months ago
NOTICE v811_spc009_project 4 months ago
README.google v811_spc009_project 4 months ago
README.pppol2tp v811_spc009_project 4 months ago
README.pppopptp v811_spc009_project 4 months ago
auth.c v811_spc009_project 4 months ago
cbcp.c v811_spc009_project 4 months ago
cbcp.h v811_spc009_project 4 months ago
ccp.c v811_spc009_project 4 months ago
ccp.h v811_spc009_project 4 months ago
chap-md5.c v811_spc009_project 4 months ago
chap-md5.h v811_spc009_project 4 months ago
chap-new.c v811_spc009_project 4 months ago
chap-new.h v811_spc009_project 4 months ago
chap_ms.c v811_spc009_project 4 months ago
chap_ms.h v811_spc009_project 4 months ago
demand.c v811_spc009_project 4 months ago
eap.c v811_spc009_project 4 months ago
eap.h v811_spc009_project 4 months ago
ecp.c v811_spc009_project 4 months ago
ecp.h v811_spc009_project 4 months ago
eui64.c v811_spc009_project 4 months ago
eui64.h v811_spc009_project 4 months ago
fsm.c v811_spc009_project 4 months ago
fsm.h v811_spc009_project 4 months ago
ipcp.c v811_spc009_project 4 months ago
ipcp.h v811_spc009_project 4 months ago
ipv6cp.c v811_spc009_project 4 months ago
ipv6cp.h v811_spc009_project 4 months ago
ipxcp.c v811_spc009_project 4 months ago
ipxcp.h v811_spc009_project 4 months ago
lcp.c v811_spc009_project 4 months ago
lcp.h v811_spc009_project 4 months ago
magic.c v811_spc009_project 4 months ago
magic.h v811_spc009_project 4 months ago
main.c v811_spc009_project 4 months ago
md4.c v811_spc009_project 4 months ago
md4.h v811_spc009_project 4 months ago
md5.c v811_spc009_project 4 months ago
md5.h v811_spc009_project 4 months ago
mppe.h v811_spc009_project 4 months ago
openssl-hash.h v811_spc009_project 4 months ago
options.c v811_spc009_project 4 months ago
patchlevel.h v811_spc009_project 4 months ago
pathnames.h v811_spc009_project 4 months ago
ppp.pam v811_spc009_project 4 months ago
pppcrypt.c v811_spc009_project 4 months ago
pppcrypt.h v811_spc009_project 4 months ago
pppd.8 v811_spc009_project 4 months ago
pppd.h v811_spc009_project 4 months ago
pppox.c v811_spc009_project 4 months ago
session.c v811_spc009_project 4 months ago
session.h v811_spc009_project 4 months ago
sha1.c v811_spc009_project 4 months ago
sha1.h v811_spc009_project 4 months ago
srp-entry.8 v811_spc009_project 4 months ago
srp-entry.c v811_spc009_project 4 months ago
sys-linux.c v811_spc009_project 4 months ago
sys-solaris.c v811_spc009_project 4 months ago
tty.c v811_spc009_project 4 months ago
upap.c v811_spc009_project 4 months ago
upap.h v811_spc009_project 4 months ago
utils.c v811_spc009_project 4 months ago

README.pppopptp

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/