• Home
Name Date Size #Lines LOC

..--

include/03-May-2024-1,077488

plugins/03-May-2024-12,0448,180

Android.bpD03-May-20242.3 KiB9989

MODULE_LICENSE_BSDD03-May-20240

Makefile.linuxD03-May-20245.2 KiB241152

Makefile.sol2D03-May-20241.3 KiB6421

NOTICED03-May-202411.6 KiB253200

README.googleD03-May-202472 32

README.pppol2tpD03-May-20241.5 KiB3428

README.pppopptpD03-May-20241,009 2619

auth.cD03-May-202459 KiB2,3661,634

cbcp.cD03-May-20249.8 KiB489361

cbcp.hD03-May-2024510 2720

ccp.cD03-May-202443.9 KiB1,6791,278

ccp.hD03-May-20242 KiB5318

chap-md5.cD03-May-20243.3 KiB11874

chap-md5.hD03-May-20241.3 KiB321

chap-new.cD03-May-202416.5 KiB660485

chap-new.hD03-May-20244.3 KiB13153

chap_ms.cD03-May-202431.1 KiB1,016672

chap_ms.hD03-May-20243.8 KiB11052

demand.cD03-May-20249.8 KiB365258

eap.cD03-May-202457.7 KiB2,4291,916

eap.hD03-May-20245.1 KiB159101

ecp.cD03-May-20245 KiB17481

ecp.hD03-May-20241.7 KiB4610

eui64.cD03-May-20241.9 KiB5813

eui64.hD03-May-20243.3 KiB11552

fsm.cD03-May-202417.7 KiB818558

fsm.hD03-May-20246 KiB16984

ipcp.cD03-May-202458 KiB2,3141,670

ipcp.hD03-May-20243.9 KiB9739

ipv6cp.cD03-May-202439.7 KiB1,545983

ipv6cp.hD03-May-20247 KiB17020

ipxcp.cD03-May-202437.8 KiB1,5991,110

ipxcp.hD03-May-20243.5 KiB9536

lcp.cD03-May-202459.1 KiB2,3811,745

lcp.hD03-May-20245.5 KiB13671

magic.cD03-May-20243.1 KiB12450

magic.hD03-May-20242.1 KiB503

main.cD03-May-202454.2 KiB2,2701,607

md4.cD03-May-20248.4 KiB300189

md4.hD03-May-20242.1 KiB6516

md5.cD03-May-202411.3 KiB308198

md5.hD03-May-20243.2 KiB6620

mppe.hD03-May-20244.1 KiB12269

openssl-hash.hD03-May-2024918 3212

options.cD03-May-202443.5 KiB1,7981,390

patchlevel.hD03-May-202455 32

pathnames.hD03-May-20242.2 KiB8258

ppp.pamD03-May-2024183 76

pppcrypt.cD03-May-20245.5 KiB254179

pppcrypt.hD03-May-20241.5 KiB416

pppd.8D03-May-202482.2 KiB1,9731,947

pppd.hD03-May-202435.4 KiB936654

pppox.cD03-May-20241.6 KiB6843

session.cD03-May-202413.1 KiB431244

session.hD03-May-20242.8 KiB9216

sha1.cD03-May-20245.6 KiB171118

sha1.hD03-May-2024653 3222

srp-entry.8D03-May-20242.9 KiB8476

srp-entry.cD03-May-20245.3 KiB191147

sys-linux.cD03-May-202470.7 KiB2,9481,936

sys-solaris.cD03-May-202464.6 KiB2,7861,979

tty.cD03-May-202432.4 KiB1,267943

upap.cD03-May-202415.4 KiB683450

upap.hD03-May-20243.8 KiB11136

utils.cD03-May-202420.3 KiB1,052837

README.google

1Notes:
2Removed multilink.c, spinlock.[ch], tdb.[ch] as they are unused.
3

README.pppol2tp

1PPPoL2TP-Android plugin
2=======================
3
4This PPPoL2TP-Android plugin was written for AOSP project from scratch. It has
5nothing to do with pppol2tp plugin from upstream ppp project [1].
6
7This plugin adds support for upstream kernel L2TP implementation in pppd
8daemon. Only LAC part of L2TP is implemented, as we don't use Android devices
9in LNS mode.
10
11In general case, the execution flow for VPN startup on Android devices is:
12 1. Run IPSec client (racoon)
13 2. Run L2TP client (mtpd)
14 3. mtpd obtains "remote tunnel ID" and "remote session ID" from L2TP server
15 4. mtpd creates L2TP sockets (see [2] for details):
16    - tunnel management PPPoX socket
17    - session PPPoX data socket
18 5. mtpd runs pppd, passing arguments for pppol2tp-android plugin
19 6. pppd dlopen() pppol2tp-android plugin (because it receives corresponding\
20    arguments from mtpd)
21
22Main task of this plugin is to obtain session_fd socket from mtpd and pass it
23back to pppd when .connect() callback is executed. In this respect it's similar
24to old pppox.c implementation. The differences are next:
25 1. pppol2tp-android also obtains the second socket (for tunnel management)
26    which allows us to handle it properly
27 2. pppol2tp-android handles the setting of MTU/MRU size (which can be passed
28    to the plugin with pppd parameters) via kernel L2TP implementation
29 3. pppol2tp-android plugin is actually loaded dynamically with dlopen(),
30    as opposed to pppox.c which is hard-coded into pppd code
31
32[1] https://github.com/paulusmack/ppp
33[2] https://www.kernel.org/doc/Documentation/networking/l2tp.txt
34

README.pppopptp

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