android13/external/ppp/pppd
liiir1985 7f62dcda9f initial 2024-06-22 20:45:49 +08:00
..
include initial 2024-06-22 20:45:49 +08:00
plugins initial 2024-06-22 20:45:49 +08:00
Android.bp initial 2024-06-22 20:45:49 +08:00
MODULE_LICENSE_BSD initial 2024-06-22 20:45:49 +08:00
Makefile.linux initial 2024-06-22 20:45:49 +08:00
Makefile.sol2 initial 2024-06-22 20:45:49 +08:00
NOTICE initial 2024-06-22 20:45:49 +08:00
README.google initial 2024-06-22 20:45:49 +08:00
README.pppol2tp initial 2024-06-22 20:45:49 +08:00
README.pppopptp initial 2024-06-22 20:45:49 +08:00
auth.c initial 2024-06-22 20:45:49 +08:00
cbcp.c initial 2024-06-22 20:45:49 +08:00
cbcp.h initial 2024-06-22 20:45:49 +08:00
ccp.c initial 2024-06-22 20:45:49 +08:00
ccp.h initial 2024-06-22 20:45:49 +08:00
chap-md5.c initial 2024-06-22 20:45:49 +08:00
chap-md5.h initial 2024-06-22 20:45:49 +08:00
chap-new.c initial 2024-06-22 20:45:49 +08:00
chap-new.h initial 2024-06-22 20:45:49 +08:00
chap_ms.c initial 2024-06-22 20:45:49 +08:00
chap_ms.h initial 2024-06-22 20:45:49 +08:00
demand.c initial 2024-06-22 20:45:49 +08:00
eap.c initial 2024-06-22 20:45:49 +08:00
eap.h initial 2024-06-22 20:45:49 +08:00
ecp.c initial 2024-06-22 20:45:49 +08:00
ecp.h initial 2024-06-22 20:45:49 +08:00
eui64.c initial 2024-06-22 20:45:49 +08:00
eui64.h initial 2024-06-22 20:45:49 +08:00
fsm.c initial 2024-06-22 20:45:49 +08:00
fsm.h initial 2024-06-22 20:45:49 +08:00
ipcp.c initial 2024-06-22 20:45:49 +08:00
ipcp.h initial 2024-06-22 20:45:49 +08:00
ipv6cp.c initial 2024-06-22 20:45:49 +08:00
ipv6cp.h initial 2024-06-22 20:45:49 +08:00
ipxcp.c initial 2024-06-22 20:45:49 +08:00
ipxcp.h initial 2024-06-22 20:45:49 +08:00
lcp.c initial 2024-06-22 20:45:49 +08:00
lcp.h initial 2024-06-22 20:45:49 +08:00
magic.c initial 2024-06-22 20:45:49 +08:00
magic.h initial 2024-06-22 20:45:49 +08:00
main.c initial 2024-06-22 20:45:49 +08:00
md4.c initial 2024-06-22 20:45:49 +08:00
md4.h initial 2024-06-22 20:45:49 +08:00
md5.c initial 2024-06-22 20:45:49 +08:00
md5.h initial 2024-06-22 20:45:49 +08:00
mppe.h initial 2024-06-22 20:45:49 +08:00
openssl-hash.h initial 2024-06-22 20:45:49 +08:00
options.c initial 2024-06-22 20:45:49 +08:00
patchlevel.h initial 2024-06-22 20:45:49 +08:00
pathnames.h initial 2024-06-22 20:45:49 +08:00
ppp.pam initial 2024-06-22 20:45:49 +08:00
pppcrypt.c initial 2024-06-22 20:45:49 +08:00
pppcrypt.h initial 2024-06-22 20:45:49 +08:00
pppd.8 initial 2024-06-22 20:45:49 +08:00
pppd.h initial 2024-06-22 20:45:49 +08:00
pppox.c initial 2024-06-22 20:45:49 +08:00
session.c initial 2024-06-22 20:45:49 +08:00
session.h initial 2024-06-22 20:45:49 +08:00
sha1.c initial 2024-06-22 20:45:49 +08:00
sha1.h initial 2024-06-22 20:45:49 +08:00
srp-entry.8 initial 2024-06-22 20:45:49 +08:00
srp-entry.c initial 2024-06-22 20:45:49 +08:00
sys-linux.c initial 2024-06-22 20:45:49 +08:00
sys-solaris.c initial 2024-06-22 20:45:49 +08:00
tty.c initial 2024-06-22 20:45:49 +08:00
upap.c initial 2024-06-22 20:45:49 +08:00
upap.h initial 2024-06-22 20:45:49 +08:00
utils.c initial 2024-06-22 20:45:49 +08:00

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/