summaryrefslogtreecommitdiff
path: root/package/ppp
diff options
context:
space:
mode:
Diffstat (limited to 'package/ppp')
-rw-r--r--package/ppp/Config.in52
-rw-r--r--package/ppp/Makefile106
-rw-r--r--package/ppp/files/etc/ppp/chap-secrets1
-rw-r--r--package/ppp/files/etc/ppp/filter23
-rwxr-xr-xpackage/ppp/files/etc/ppp/ip-down9
-rwxr-xr-xpackage/ppp/files/etc/ppp/ip-down.d/umts7
-rwxr-xr-xpackage/ppp/files/etc/ppp/ip-up9
-rwxr-xr-xpackage/ppp/files/etc/ppp/ip-up.d/if-rename17
-rwxr-xr-xpackage/ppp/files/etc/ppp/ip-up.d/umts7
-rw-r--r--package/ppp/files/etc/ppp/options1
-rw-r--r--package/ppp/files/etc/ppp/peers/dsl12
-rw-r--r--package/ppp/files/etc/ppp/templates/dsl9
-rw-r--r--package/ppp/files/etc/ppp/templates/umts11
-rwxr-xr-xpackage/ppp/files/poff14
-rwxr-xr-xpackage/ppp/files/pon8
-rwxr-xr-xpackage/ppp/files/ppp.pre-up0
-rw-r--r--package/ppp/ipkg/ppp-mod-chat.control5
-rw-r--r--package/ppp/ipkg/ppp-mod-pppdump.control5
-rw-r--r--package/ppp/ipkg/ppp-mod-pppoa.control5
-rw-r--r--package/ppp/ipkg/ppp-mod-pppoe.control5
-rw-r--r--package/ppp/ipkg/ppp-mod-pppstats.control5
-rw-r--r--package/ppp/ipkg/ppp-mod-pppumts.control5
-rw-r--r--package/ppp/ipkg/ppp-mod-radius.conffiles10
-rw-r--r--package/ppp/ipkg/ppp-mod-radius.control5
-rw-r--r--package/ppp/ipkg/ppp.conffiles2
-rw-r--r--package/ppp/ipkg/ppp.control5
-rw-r--r--package/ppp/patches/010-use_target_for_configuration.patch20
-rw-r--r--package/ppp/patches/100-debian_close_dev_ppp.patch34
-rw-r--r--package/ppp/patches/200-makefile.patch44
-rw-r--r--package/ppp/patches/201-mppe_mppc_1.1.patch1587
-rw-r--r--package/ppp/patches/203-no_strip.patch86
-rw-r--r--package/ppp/patches/204-opt_flags.patch26
-rw-r--r--package/ppp/patches/206-radius_config.patch39
-rw-r--r--package/ppp/patches/208-no_exponential_timeout.patch28
-rw-r--r--package/ppp/patches/209-compensate_time_change.patch82
-rw-r--r--package/ppp/patches/320-use_target_ar.patch24
-rw-r--r--package/ppp/utils/pfc.c51
37 files changed, 2359 insertions, 0 deletions
diff --git a/package/ppp/Config.in b/package/ppp/Config.in
new file mode 100644
index 000000000..493c74e58
--- /dev/null
+++ b/package/ppp/Config.in
@@ -0,0 +1,52 @@
+
+config ADK_PACKAGE_PPP
+ prompt "ppp............................... PPP (Point-to-Point Protocol) daemon"
+ tristate
+ default n
+ select ADK_KPACKAGE_KMOD_PPP
+
+#config ADK_PACKAGE_PPP_MOD_PPPOA
+# prompt "ppp-mod-pppoa................... PPPoA (PPP over ATM) plugin"
+# tristate
+# default n
+# select ADK_KPACKAGE_KMOD_PPPOATM
+# depends ADK_PACKAGE_PPP
+
+config ADK_PACKAGE_PPP_MOD_PPPOE
+ prompt "ppp-mod-pppoe................... PPPoE (PPP over Ethernet) plugin"
+ tristate
+ default n
+ select ADK_KPACKAGE_KMOD_PPPOE
+ depends ADK_PACKAGE_PPP
+
+config ADK_PACKAGE_PPP_MOD_RADIUS
+ prompt "ppp-mod-radius.................. RADIUS (Remote Authentication Dial-In User Service) plugin"
+ tristate
+ default n
+ depends ADK_PACKAGE_PPP
+
+config ADK_PACKAGE_PPP_MOD_CHAT
+ prompt "chat............................ Utility to establish conversation with other PPP servers (via a modem)"
+ tristate
+ default n
+ depends ADK_PACKAGE_PPP
+
+config ADK_PACKAGE_PPP_MOD_PPPDUMP
+ prompt "pppdump......................... Utility to read PPP record file"
+ tristate
+ default n
+ depends ADK_PACKAGE_PPP
+
+config ADK_PACKAGE_PPP_MOD_PPPSTATS
+ prompt "pppstats........................ Utility to report PPP statistics"
+ tristate
+ default n
+ depends ADK_PACKAGE_PPP
+
+config ADK_PACKAGE_PPP_MOD_PPPUMTS
+ prompt "GPRS/UMTS support............... Package with scripts and dependencies to run UMTS/GRPS"
+ tristate
+ default n
+ select ADK_PACKAGE_COMGT
+ select ADK_KPACKAGE_KMOD_USB_SERIAL
+ depends ADK_PACKAGE_PPP
diff --git a/package/ppp/Makefile b/package/ppp/Makefile
new file mode 100644
index 000000000..44864dcd8
--- /dev/null
+++ b/package/ppp/Makefile
@@ -0,0 +1,106 @@
+# $Id$
+#-
+# This file is part of the OpenADK project. OpenADK is copyrighted
+# material, please see the LICENCE file in the top-level directory.
+
+include ${TOPDIR}/rules.mk
+
+PKG_NAME:= ppp
+PKG_VERSION:= 2.4.4
+PKG_RELEASE:= 16
+PKG_MD5SUM:= 183800762e266132218b204dfb428d29
+MASTER_SITES:= ftp://ftp.samba.org/pub/ppp/
+
+include ${TOPDIR}/mk/package.mk
+
+$(eval $(call PKG_template,PPP,ppp,${PKG_VERSION}-${PKG_RELEASE},${ARCH}))
+$(eval $(call PKG_template,PPP_MOD_PPPOA,ppp-mod-pppoa,${PKG_VERSION}-${PKG_RELEASE},${ARCH}))
+$(eval $(call PKG_template,PPP_MOD_PPPOE,ppp-mod-pppoe,${PKG_VERSION}-${PKG_RELEASE},${ARCH}))
+$(eval $(call PKG_template,PPP_MOD_RADIUS,ppp-mod-radius,${PKG_VERSION}-${PKG_RELEASE},${ARCH}))
+$(eval $(call PKG_template,PPP_MOD_CHAT,ppp-mod-chat,${PKG_VERSION}-${PKG_RELEASE},${ARCH}))
+$(eval $(call PKG_template,PPP_MOD_PPPDUMP,ppp-mod-pppdump,${PKG_VERSION}-${PKG_RELEASE},${ARCH}))
+$(eval $(call PKG_template,PPP_MOD_PPPSTATS,ppp-mod-pppstats,${PKG_VERSION}-${PKG_RELEASE},${ARCH}))
+$(eval $(call PKG_template,PPP_MOD_PPPUMTS,ppp-mod-pppumts,${PKG_VERSION}-${PKG_RELEASE},${ARCH}))
+
+ifeq ($(ADK_IPV6),y)
+IPV6+=HAVE_INET6="1"
+endif
+
+CONFIGURE_STYLE:= gnu
+BUILD_STYLE:= auto
+INSTALL_STYLE:= auto
+XAKE_FLAGS+= CC="${TARGET_CC}" \
+ COPTS="${TCFLAGS}" \
+ ${IPV6} \
+ STAGING_DIR=${STAGING_DIR} \
+ DESTDIR="${WRKINST}/usr" \
+ TARGET_AR='${TARGET_CROSS}ar'
+
+SUB_INSTALLS-y:=
+SUB_INSTALLS-m:=
+SUB_INSTALLS-${ADK_PACKAGE_PPP_MOD_PPPOE}+= mod-pppoe-install
+SUB_INSTALLS-${ADK_PACKAGE_PPP_MOD_RADIUS}+= mod-radius-install
+SUB_INSTALLS-${ADK_PACKAGE_PPP_MOD_CHAT}+= mod-chat-install
+SUB_INSTALLS-${ADK_PACKAGE_PPP_MOD_PPPDUMP}+= mod-pppdump-install
+SUB_INSTALLS-${ADK_PACKAGE_PPP_MOD_PPPSTATS}+= mod-pppstats-install
+SUB_INSTALLS-${ADK_PACKAGE_PPP_MOD_PPPUMTS}+= mod-pppumts-install
+
+post-install: ${SUB_INSTALLS-m} ${SUB_INSTALLS-y}
+ echo -------------------------------
+ echo ${SUB_INSTALLS-m}
+ echo ${SUB_INSTALLS-y}
+ ${INSTALL_DIR} ${IDIR_PPP}/etc/ppp
+ ln -sf /tmp/resolv.conf ${IDIR_PPP}/etc/ppp/resolv.conf
+ install -m0600 ./files/etc/ppp/chap-secrets ${IDIR_PPP}/etc/ppp/
+ ${INSTALL_DATA} ./files/etc/ppp/options ${IDIR_PPP}/etc/ppp/
+ ${INSTALL_FILTER}
+ ${INSTALL_BIN} ./files/etc/ppp/ip-up ${IDIR_PPP}/etc/ppp/
+ ${INSTALL_DIR} ${IDIR_PPP}/etc/ppp/ip-up.d
+ ${INSTALL_BIN} ./files/etc/ppp/ip-up.d/if-rename ${IDIR_PPP}/etc/ppp/ip-up.d/
+ ${INSTALL_BIN} ./files/etc/ppp/ip-down ${IDIR_PPP}/etc/ppp/
+ ${INSTALL_DIR} ${IDIR_PPP}/etc/ppp/ip-down.d
+ ${INSTALL_DIR} ${IDIR_PPP}/usr/sbin
+ ${INSTALL_BIN} ${WRKINST}/usr/sbin/pppd ${IDIR_PPP}/usr/sbin/
+ ${INSTALL_DIR} ${IDIR_PPP}/usr/lib/pppd
+ ${INSTALL_BIN} ./files/pon ${IDIR_PPP}/usr/sbin/
+ ${INSTALL_BIN} ./files/poff ${IDIR_PPP}/usr/sbin/
+ ${INSTALL_DIR} ${IDIR_PPP}/etc/ppp/peers
+ ${INSTALL_DIR} ${IDIR_PPP}/etc/ppp/templates
+ ${INSTALL_DATA} ./files/etc/ppp/templates/dsl ${IDIR_PPP}/etc/ppp/templates/
+
+mod-radius-install:
+ ${INSTALL_DIR} ${IDIR_PPP_MOD_RADIUS}/etc/radiusclient
+ ${CP} ${WRKBUILD}/pppd/plugins/radius/etc/* ${IDIR_PPP_MOD_RADIUS}/etc/radiusclient
+ rm ${IDIR_PPP_MOD_RADIUS}/etc/radiusclient/radiusclient.conf.in
+ ${INSTALL_DIR} ${IDIR_PPP_MOD_RADIUS}/usr/lib/pppd/$(PKG_VERSION)
+ ${INSTALL_BIN} $(WRKINST)/usr/lib/pppd/$(PKG_VERSION)/radius.so \
+ ${IDIR_PPP_MOD_RADIUS}/usr/lib/pppd/$(PKG_VERSION)
+
+mod-pppoe-install:
+ ${INSTALL_DIR} ${IDIR_PPP_MOD_PPPOE}/usr/lib/pppd/$(PKG_VERSION)
+ ${INSTALL_BIN} $(WRKINST)/usr/lib/pppd/$(PKG_VERSION)/rp-pppoe.so \
+ ${IDIR_PPP_MOD_PPPOE}/usr/lib/pppd/$(PKG_VERSION)
+
+mod-chat-install:
+ ${INSTALL_DIR} ${IDIR_PPP_MOD_CHAT}/usr/sbin
+ ${CP} ${WRKINST}/usr/sbin/chat ${IDIR_PPP_MOD_CHAT}/usr/sbin/
+
+mod-pppdump-install:
+ ${INSTALL_DIR} ${IDIR_PPP_MOD_PPPDUMP}/usr/sbin
+ ${CP} ${WRKINST}/usr/sbin/pppdump ${IDIR_PPP_MOD_PPPDUMP}/usr/sbin/
+
+mod-pppstats-install:
+ ${INSTALL_DIR} ${IDIR_PPP_MOD_PPPSTATS}/usr/sbin
+ ${CP} ${WRKINST}/usr/sbin/pppstats ${IDIR_PPP_MOD_PPPSTATS}/usr/sbin/
+
+mod-pppumts-install:
+ ${INSTALL_DIR} ${IDIR_PPP_MOD_PPPUMTS}/etc/ppp/templates
+ ${INSTALL_DIR} ${IDIR_PPP_MOD_PPPUMTS}/etc/ppp/ip-{down,up}.d
+ ${INSTALL_DATA} ./files/etc/ppp/templates/umts \
+ ${IDIR_PPP_MOD_PPPUMTS}/etc/ppp/templates/
+ ${INSTALL_BIN} ./files/etc/ppp/ip-up.d/umts \
+ ${IDIR_PPP_MOD_PPPUMTS}/etc/ppp/ip-up.d/
+ ${INSTALL_BIN} ./files/etc/ppp/ip-down.d/umts \
+ ${IDIR_PPP_MOD_PPPUMTS}/etc/ppp/ip-down.d/
+
+include ${TOPDIR}/mk/pkg-bottom.mk
diff --git a/package/ppp/files/etc/ppp/chap-secrets b/package/ppp/files/etc/ppp/chap-secrets
new file mode 100644
index 000000000..6ab76e49e
--- /dev/null
+++ b/package/ppp/files/etc/ppp/chap-secrets
@@ -0,0 +1 @@
+#USERNAME PROVIDER PASSWORD IPADDRESS
diff --git a/package/ppp/files/etc/ppp/filter b/package/ppp/files/etc/ppp/filter
new file mode 100644
index 000000000..ec72a81a0
--- /dev/null
+++ b/package/ppp/files/etc/ppp/filter
@@ -0,0 +1,23 @@
+#
+# Expression: outbound and not icmp[0] != 8 and not tcp[13] & 4 != 0
+#
+19
+48 0 0 0
+21 0 16 1
+40 0 0 2
+21 0 13 33
+48 0 0 13
+21 0 5 1
+40 0 0 10
+69 9 0 8191
+177 0 0 4
+80 0 0 4
+21 6 7 8
+21 0 5 6
+40 0 0 10
+69 3 0 8191
+177 0 0 4
+80 0 0 17
+69 1 0 4
+6 0 0 4
+6 0 0 0
diff --git a/package/ppp/files/etc/ppp/ip-down b/package/ppp/files/etc/ppp/ip-down
new file mode 100755
index 000000000..334bcb885
--- /dev/null
+++ b/package/ppp/files/etc/ppp/ip-down
@@ -0,0 +1,9 @@
+#!/bin/sh
+[ -z "$6" ] || env -i ACTION="ifdown" INTERFACE="$6" PROTO=ppp /sbin/hotplug "iface"
+
+[ -d /etc/ppp/ip-down.d ] && {
+ for SCRIPT in /etc/ppp/ip-down.d/*
+ do
+ [ -x "$SCRIPT" ] && "$SCRIPT" $@
+ done
+}
diff --git a/package/ppp/files/etc/ppp/ip-down.d/umts b/package/ppp/files/etc/ppp/ip-down.d/umts
new file mode 100755
index 000000000..6c812a782
--- /dev/null
+++ b/package/ppp/files/etc/ppp/ip-down.d/umts
@@ -0,0 +1,7 @@
+#!/bin/sh
+
+[ "$IF_USE_TEMPLATE" == "umts" ] || exit 0
+
+# enable bit 3, disable bit 4 - i.e. UMTS-LED from blue to green
+LED=$(cat /proc/sys/diag)
+echo $(((LED | 16) ^ 16 | 8)) > /proc/sys/diag
diff --git a/package/ppp/files/etc/ppp/ip-up b/package/ppp/files/etc/ppp/ip-up
new file mode 100755
index 000000000..34b4b50e1
--- /dev/null
+++ b/package/ppp/files/etc/ppp/ip-up
@@ -0,0 +1,9 @@
+#!/bin/sh
+[ -z "$6" ] || env -i ACTION="ifup" INTERFACE="$6" PROTO=ppp /sbin/hotplug "iface"
+
+[ -d /etc/ppp/ip-up.d ] && {
+ for SCRIPT in /etc/ppp/ip-up.d/*
+ do
+ [ -x "$SCRIPT" ] && "$SCRIPT" $@
+ done
+}
diff --git a/package/ppp/files/etc/ppp/ip-up.d/if-rename b/package/ppp/files/etc/ppp/ip-up.d/if-rename
new file mode 100755
index 000000000..061fd8861
--- /dev/null
+++ b/package/ppp/files/etc/ppp/ip-up.d/if-rename
@@ -0,0 +1,17 @@
+#!/bin/sh
+exit 0 # This script breaks ppp accounting
+
+[ "$LINKNAME" ] || exit 0
+
+PATH=/bin:/usr/sbin:$PATH
+if ip link show dev $LINKNAME >/dev/null;then
+ logger "$0: interface '$LINKNAME' already exists, cannot rename '$IFNAME'."
+ exit 0
+fi
+
+if ip route | grep -qE "^default.*dev $IFNAME *$"; then DEFAULT_ROUTE=1; fi
+
+ip link set $IFNAME down
+ip link set $IFNAME name $LINKNAME
+ip link set $LINKNAME up
+if [ -n "$DEFAULT_ROUTE" ]; then ip route add default via $IPREMOTE; fi
diff --git a/package/ppp/files/etc/ppp/ip-up.d/umts b/package/ppp/files/etc/ppp/ip-up.d/umts
new file mode 100755
index 000000000..0c18970e0
--- /dev/null
+++ b/package/ppp/files/etc/ppp/ip-up.d/umts
@@ -0,0 +1,7 @@
+#!/bin/sh
+
+[ "$IF_USE_TEMPLATE" == "umts" ] || exit 0
+
+# enable bit 4 i.e. UMTS-LED blue
+LED=$(cat /proc/sys/diag)
+echo $((LED | 16)) > /proc/sys/diag
diff --git a/package/ppp/files/etc/ppp/options b/package/ppp/files/etc/ppp/options
new file mode 100644
index 000000000..4b67b6a0d
--- /dev/null
+++ b/package/ppp/files/etc/ppp/options
@@ -0,0 +1 @@
+lock
diff --git a/package/ppp/files/etc/ppp/peers/dsl b/package/ppp/files/etc/ppp/peers/dsl
new file mode 100644
index 000000000..7ffc38082
--- /dev/null
+++ b/package/ppp/files/etc/ppp/peers/dsl
@@ -0,0 +1,12 @@
+plugin rp-pppoe.so
+ipcp-accept-remote
+ipcp-accept-local
+usepeerdns
+defaultroute
+lcp-echo-interval 10
+lcp-echo-failure 3
+persist
+maxfail 0
+
+user "user@t-online.de"
+password "secret"
diff --git a/package/ppp/files/etc/ppp/templates/dsl b/package/ppp/files/etc/ppp/templates/dsl
new file mode 100644
index 000000000..2ad285ede
--- /dev/null
+++ b/package/ppp/files/etc/ppp/templates/dsl
@@ -0,0 +1,9 @@
+plugin rp-pppoe.so
+defaultroute
+usepeerdns
+lcp-echo-interval 10
+lcp-echo-failure 3
+#IDLEOPTIONS#
+user #USERNAME#
+password #PASSWORD#
+#DEVICE#
diff --git a/package/ppp/files/etc/ppp/templates/umts b/package/ppp/files/etc/ppp/templates/umts
new file mode 100644
index 000000000..e9c97bf06
--- /dev/null
+++ b/package/ppp/files/etc/ppp/templates/umts
@@ -0,0 +1,11 @@
+defaultroute
+usepeerdns
+lcp-echo-interval 10
+lcp-echo-failure 3
+crtscts
+460800
+connect "NUMBER='*99***1#' /usr/bin/comgt -s /etc/comgt/dial.comgt -d #DEVICE#"
+#IDLEOPTIONS#
+user #USERNAME#
+password #PASSWORD#
+#DEVICE#
diff --git a/package/ppp/files/poff b/package/ppp/files/poff
new file mode 100755
index 000000000..955cebe8c
--- /dev/null
+++ b/package/ppp/files/poff
@@ -0,0 +1,14 @@
+#!/bin/mksh
+(busybox ps ww | grep "[ /]pppd call $1\( .*\)*\$") |&
+found=0
+rv=0
+while read thepid rest; do
+ if ! kill $thepid; then
+ print -u2 "$0: kill $thepid failed"
+ rv=1
+ fi
+ found=1
+done
+[[ $found = 1 ]] && exit $rv
+print -u2 "$0: I could not find a pppd process for provider '$1'."
+exit 1
diff --git a/package/ppp/files/pon b/package/ppp/files/pon
new file mode 100755
index 000000000..1c2e5c50c
--- /dev/null
+++ b/package/ppp/files/pon
@@ -0,0 +1,8 @@
+#!/bin/sh
+insmod slhc.o 2>/dev/null
+insmod ppp_generic.o 2>/dev/null
+insmod pppox.o 2>/dev/null
+insmod pppoe.o 2>/dev/null
+insmod ppp_async.o 2>/dev/null
+
+exec /usr/sbin/pppd call $@ >/dev/null 2>&1
diff --git a/package/ppp/files/ppp.pre-up b/package/ppp/files/ppp.pre-up
new file mode 100755
index 000000000..e69de29bb
--- /dev/null
+++ b/package/ppp/files/ppp.pre-up
diff --git a/package/ppp/ipkg/ppp-mod-chat.control b/package/ppp/ipkg/ppp-mod-chat.control
new file mode 100644
index 000000000..43dbdb1e1
--- /dev/null
+++ b/package/ppp/ipkg/ppp-mod-chat.control
@@ -0,0 +1,5 @@
+Package: chat
+Priority: optional
+Section: net
+Description: Utility for establishing a connection with the ISP's PPP server (e.g. via Modem)
+Depends: ppp
diff --git a/package/ppp/ipkg/ppp-mod-pppdump.control b/package/ppp/ipkg/ppp-mod-pppdump.control
new file mode 100644
index 000000000..4a89e152e
--- /dev/null
+++ b/package/ppp/ipkg/ppp-mod-pppdump.control
@@ -0,0 +1,5 @@
+Package: pppdump
+Priority: optional
+Section: net
+Description: an utility to read PPP record file
+Depends: ppp
diff --git a/package/ppp/ipkg/ppp-mod-pppoa.control b/package/ppp/ipkg/ppp-mod-pppoa.control
new file mode 100644
index 000000000..ce2d5d45f
--- /dev/null
+++ b/package/ppp/ipkg/ppp-mod-pppoa.control
@@ -0,0 +1,5 @@
+Package: ppp-mod-pppoa
+Priority: optional
+Section: net
+Description: a PPPoA (PPP over ATM) plugin for PPP
+Depends: ppp, kmod-pppoa
diff --git a/package/ppp/ipkg/ppp-mod-pppoe.control b/package/ppp/ipkg/ppp-mod-pppoe.control
new file mode 100644
index 000000000..7cf49636b
--- /dev/null
+++ b/package/ppp/ipkg/ppp-mod-pppoe.control
@@ -0,0 +1,5 @@
+Package: ppp-mod-pppoe
+Priority: optional
+Section: net
+Description: a PPPoE (PPP over Ethernet) plugin for PPP
+Depends: ppp, kmod-pppoe
diff --git a/package/ppp/ipkg/ppp-mod-pppstats.control b/package/ppp/ipkg/ppp-mod-pppstats.control
new file mode 100644
index 000000000..8780b2f87
--- /dev/null
+++ b/package/ppp/ipkg/ppp-mod-pppstats.control
@@ -0,0 +1,5 @@
+Package: pppstats
+Priority: optional
+Section: net
+Description: an utility to report PPP statistics
+Depends: ppp
diff --git a/package/ppp/ipkg/ppp-mod-pppumts.control b/package/ppp/ipkg/ppp-mod-pppumts.control
new file mode 100644
index 000000000..178ae2413
--- /dev/null
+++ b/package/ppp/ipkg/ppp-mod-pppumts.control
@@ -0,0 +1,5 @@
+Package: pppumts
+Priority: optional
+Section: net
+Depends: comgt, chat
+Description: Scripts and default configuration files to establish GPRS/UMTS connections
diff --git a/package/ppp/ipkg/ppp-mod-radius.conffiles b/package/ppp/ipkg/ppp-mod-radius.conffiles
new file mode 100644
index 000000000..2cfa4a146
--- /dev/null
+++ b/package/ppp/ipkg/ppp-mod-radius.conffiles
@@ -0,0 +1,10 @@
+/etc/radiusclient/dictionary
+/etc/radiusclient/dictionary.ascend
+/etc/radiusclient/dictionary.compat
+/etc/radiusclient/dictionary.merit
+/etc/radiusclient/dictionary.microsoft
+/etc/radiusclient/issue
+/etc/radiusclient/port-id-map
+/etc/radiusclient/radiusclient.conf
+/etc/radiusclient/realms
+/etc/radiusclient/servers
diff --git a/package/ppp/ipkg/ppp-mod-radius.control b/package/ppp/ipkg/ppp-mod-radius.control
new file mode 100644
index 000000000..0a858da30
--- /dev/null
+++ b/package/ppp/ipkg/ppp-mod-radius.control
@@ -0,0 +1,5 @@
+Package: ppp-mod-radius
+Priority: optional
+Section: net
+Description: a RADIUS plugin for PPP
+Depends: ppp
diff --git a/package/ppp/ipkg/ppp.conffiles b/package/ppp/ipkg/ppp.conffiles
new file mode 100644
index 000000000..8ad17eb43
--- /dev/null
+++ b/package/ppp/ipkg/ppp.conffiles
@@ -0,0 +1,2 @@
+/etc/ppp/chap-secrets
+/etc/ppp/options
diff --git a/package/ppp/ipkg/ppp.control b/package/ppp/ipkg/ppp.control
new file mode 100644
index 000000000..2ebff521c
--- /dev/null
+++ b/package/ppp/ipkg/ppp.control
@@ -0,0 +1,5 @@
+Package: ppp
+Priority: optional
+Section: net
+Depends: kmod-ppp
+Description: a PPP (Point-to-Point Protocol) daemon (with MPPE/MPPC support)
diff --git a/package/ppp/patches/010-use_target_for_configuration.patch b/package/ppp/patches/010-use_target_for_configuration.patch
new file mode 100644
index 000000000..0b804694b
--- /dev/null
+++ b/package/ppp/patches/010-use_target_for_configuration.patch
@@ -0,0 +1,20 @@
+$Id$
+
+ Use values exported from $(TOPDIR)/rules.mk for determining
+ the target system instead of the host configuration, d'oh
+
+--- ppp-2.4.3/configure.orig Sat Nov 6 11:36:32 2004
++++ ppp-2.4.3/configure Sun Jun 18 23:40:46 2006
+@@ -8,9 +8,9 @@ SYSCONF=/etc
+ # if [ -d /NextApps ]; then
+ # system="NeXTStep"
+ # else
+- system=`uname -s`
+- release=`uname -r`
+- arch=`uname -m`
++ system=${UNAME_S:-`uname -s`}
++ release=${UNAME_R:-`uname -r`}
++ arch=${UNAME_M:-`uname -m`}
+ # fi
+ state="unknown"
+
diff --git a/package/ppp/patches/100-debian_close_dev_ppp.patch b/package/ppp/patches/100-debian_close_dev_ppp.patch
new file mode 100644
index 000000000..4e50118e8
--- /dev/null
+++ b/package/ppp/patches/100-debian_close_dev_ppp.patch
@@ -0,0 +1,34 @@
+From: Simon Peter <dn.tlp@gmx.net>
+Subject: Bug#306261: pppd does not properly close /dev/ppp on persist
+
+When using the kernel PPPoE driver, pppd never
+closes /dev/ppp when the link has come down.
+
+It opens superfluous fds to the device each time it re-opens the
+connection, with the unclosed ones falsely reported always ready for
+data by select().
+
+This makes pppd eat up 100% CPU time after the first persist because of
+the always instantly returning select() on the unclosed fds.
+
+The problem also occurs with the upstream version, but does not occur
+when a pty/tty device is used for the ppp connection.
+
+
+diff -u -r ppp-2.4.3/pppd/sys-linux.c ppp-2.4.3/pppd/sys-linux.c
+--- ppp-2.4.3/pppd/sys-linux.c 2005-04-29 20:08:37.000000000 +0200
++++ ppp-2.4.3/pppd/sys-linux.c 2005-04-29 20:07:03.000000000 +0200
+@@ -455,6 +455,13 @@
+ if (new_style_driver) {
+ int flags;
+
++ /* if a ppp_fd is already open, close it first */
++ if(ppp_fd > 0) {
++ close(ppp_fd);
++ remove_fd(ppp_fd);
++ ppp_fd = -1;
++ }
++
+ /* Open an instance of /dev/ppp and connect the channel to it */
+ if (ioctl(fd, PPPIOCGCHAN, &chindex) == -1) {
+ error("Couldn't get channel number: %m");
diff --git a/package/ppp/patches/200-makefile.patch b/package/ppp/patches/200-makefile.patch
new file mode 100644
index 000000000..df0f08e44
--- /dev/null
+++ b/package/ppp/patches/200-makefile.patch
@@ -0,0 +1,44 @@
+diff -Nur ppp-2.4.4.orig/pppd/Makefile.linux ppp-2.4.4/pppd/Makefile.linux
+--- ppp-2.4.4.orig/pppd/Makefile.linux 2006-06-04 07:07:46.000000000 +0200
++++ ppp-2.4.4/pppd/Makefile.linux 2007-10-04 08:53:26.000000000 +0200
+@@ -48,7 +48,7 @@
+ # Uncomment the next line to include support for PPP packet filtering.
+ # This requires that the libpcap library and headers be installed
+ # and that the kernel driver support PPP packet filtering.
+-FILTER=y
++#FILTER=y
+
+ # Uncomment the next line to enable multilink PPP (enabled by default)
+ # Linux distributions: Please leave multilink ENABLED in your builds
+@@ -58,9 +58,9 @@
+ # Uncomment the next line to enable the TDB database (enabled by default.)
+ # If you enable multilink, then TDB is automatically enabled also.
+ # Linux distributions: Please leave TDB ENABLED in your builds.
+-USE_TDB=y
++#USE_TDB=y
+
+-HAS_SHADOW=y
++#HAS_SHADOW=y
+ #USE_PAM=y
+ #HAVE_INET6=y
+
+@@ -77,7 +77,7 @@
+
+ INCLUDE_DIRS= -I../include
+
+-COMPILE_FLAGS= -DHAVE_PATHS_H -DIPX_CHANGE -DHAVE_MMAP
++COMPILE_FLAGS= -DHAVE_PATHS_H -DHAVE_MMAP
+
+ CFLAGS= $(COPTS) $(COMPILE_FLAGS) $(INCLUDE_DIRS) '-DDESTDIR="@DESTDIR@"'
+
+@@ -117,10 +117,8 @@
+ #LIBS += -lshadow $(LIBS)
+ endif
+
+-ifneq ($(wildcard /usr/include/crypt.h),)
+ CFLAGS += -DHAVE_CRYPT_H=1
+ LIBS += -lcrypt
+-endif
+
+ ifdef NEEDDES
+ ifndef USE_CRYPT
diff --git a/package/ppp/patches/201-mppe_mppc_1.1.patch b/package/ppp/patches/201-mppe_mppc_1.1.patch
new file mode 100644
index 000000000..c315656a2
--- /dev/null
+++ b/package/ppp/patches/201-mppe_mppc_1.1.patch
@@ -0,0 +1,1587 @@
+diff -ruN ppp-2.4.3.orig/include/linux/ppp-comp.h ppp-2.4.3/include/linux/ppp-comp.h
+--- ppp-2.4.3.orig/include/linux/ppp-comp.h 2002-12-06 10:49:15.000000000 +0100
++++ ppp-2.4.3/include/linux/ppp-comp.h 2004-11-21 13:54:09.000000000 +0100
+@@ -36,7 +36,7 @@
+ */
+
+ /*
+- * ==FILEVERSION 20020319==
++ * ==FILEVERSION 20020715==
+ *
+ * NOTE TO MAINTAINERS:
+ * If you modify this file at all, please set the above date.
+@@ -86,7 +86,7 @@
+
+ /* Compress a packet */
+ int (*compress) (void *state, unsigned char *rptr,
+- unsigned char *obuf, int isize, int osize);
++ unsigned char *obuf, int isize, int osize);
+
+ /* Return compression statistics */
+ void (*comp_stat) (void *state, struct compstat *stats);
+@@ -107,7 +107,7 @@
+
+ /* Decompress a packet. */
+ int (*decompress) (void *state, unsigned char *ibuf, int isize,
+- unsigned char *obuf, int osize);
++ unsigned char *obuf, int osize);
+
+ /* Update state for an incompressible packet received */
+ void (*incomp) (void *state, unsigned char *ibuf, int icnt);
+@@ -288,6 +288,33 @@
+ opts |= MPPE_OPT_UNKNOWN; \
+ } while (/* CONSTCOND */ 0)
+
++/* MPPE/MPPC definitions by J.D.*/
++#define MPPE_STATELESS MPPE_H_BIT /* configuration bit H */
++#define MPPE_40BIT MPPE_L_BIT /* configuration bit L */
++#define MPPE_56BIT MPPE_M_BIT /* configuration bit M */
++#define MPPE_128BIT MPPE_S_BIT /* configuration bit S */
++#define MPPE_MPPC MPPE_C_BIT /* configuration bit C */
++
++/*
++ * Definitions for Stac LZS.
++ */
++
++#define CI_LZS 17 /* config option for Stac LZS */
++#define CILEN_LZS 5 /* length of config option */
++
++#define LZS_OVHD 4 /* max. LZS overhead */
++#define LZS_HIST_LEN 2048 /* LZS history size */
++#define LZS_MAX_CCOUNT 0x0FFF /* max. coherency counter value */
++
++#define LZS_MODE_NONE 0
++#define LZS_MODE_LCB 1
++#define LZS_MODE_CRC 2
++#define LZS_MODE_SEQ 3
++#define LZS_MODE_EXT 4
++
++#define LZS_EXT_BIT_FLUSHED 0x80 /* bit A */
++#define LZS_EXT_BIT_COMP 0x20 /* bit C */
++
+ /*
+ * Definitions for other, as yet unsupported, compression methods.
+ */
+diff -ruN ppp-2.4.3.orig/include/net/ppp-comp.h ppp-2.4.3/include/net/ppp-comp.h
+--- ppp-2.4.3.orig/include/net/ppp-comp.h 2002-12-06 10:49:15.000000000 +0100
++++ ppp-2.4.3/include/net/ppp-comp.h 2004-11-21 13:54:09.000000000 +0100
+@@ -255,6 +255,33 @@
+ opts |= MPPE_OPT_UNKNOWN; \
+ } while (/* CONSTCOND */ 0)
+
++/* MPPE/MPPC definitions by J.D.*/
++#define MPPE_STATELESS MPPE_H_BIT /* configuration bit H */
++#define MPPE_40BIT MPPE_L_BIT /* configuration bit L */
++#define MPPE_56BIT MPPE_M_BIT /* configuration bit M */
++#define MPPE_128BIT MPPE_S_BIT /* configuration bit S */
++#define MPPE_MPPC MPPE_C_BIT /* configuration bit C */
++
++/*
++ * Definitions for Stac LZS.
++ */
++
++#define CI_LZS 17 /* config option for Stac LZS */
++#define CILEN_LZS 5 /* length of config option */
++
++#define LZS_OVHD 4 /* max. LZS overhead */
++#define LZS_HIST_LEN 2048 /* LZS history size */
++#define LZS_MAX_CCOUNT 0x0FFF /* max. coherency counter value */
++
++#define LZS_MODE_NONE 0
++#define LZS_MODE_LCB 1
++#define LZS_MODE_CRC 2
++#define LZS_MODE_SEQ 3
++#define LZS_MODE_EXT 4
++
++#define LZS_EXT_BIT_FLUSHED 0x80 /* bit A */
++#define LZS_EXT_BIT_COMP 0x20 /* bit C */
++
+ /*
+ * Definitions for other, as yet unsupported, compression methods.
+ */
+--- ppp-2.4.4/pppd/ccp.c.orig 2005-07-09 02:23:05.000000000 +0200
++++ ppp-2.4.4/pppd/ccp.c 2006-07-21 23:34:12.121546000 +0200
+@@ -62,12 +62,10 @@
+ static char bsd_value[8];
+ static char deflate_value[8];
+
+-/*
+- * Option variables.
+- */
+ #ifdef MPPE
+-bool refuse_mppe_stateful = 1; /* Allow stateful mode? */
+-#endif
++static int setmppe(char **);
++static int setnomppe(void);
++#endif /* MPPE */
+
+ static option_t ccp_option_list[] = {
+ { "noccp", o_bool, &ccp_protent.enabled_flag,
+@@ -108,54 +106,36 @@
+ "don't allow Predictor-1", OPT_ALIAS | OPT_PRIOSUB | OPT_A2CLR,
+ &ccp_allowoptions[0].predictor_1 },
+
++ { "lzs", o_bool, &ccp_wantoptions[0].lzs,
++ "request Stac LZS", 1, &ccp_allowoptions[0].lzs, OPT_PRIO },
++ { "+lzs", o_bool, &ccp_wantoptions[0].lzs,
++ "request Stac LZS", 1, &ccp_allowoptions[0].lzs, OPT_ALIAS | OPT_PRIO },
++ { "nolzs", o_bool, &ccp_wantoptions[0].lzs,
++ "don't allow Stac LZS", OPT_PRIOSUB | OPT_A2CLR,
++ &ccp_allowoptions[0].lzs },
++ { "-lzs", o_bool, &ccp_wantoptions[0].lzs,
++ "don't allow Stac LZS", OPT_ALIAS | OPT_PRIOSUB | OPT_A2CLR,
++ &ccp_allowoptions[0].lzs },
++
+ #ifdef MPPE
+- /* MPPE options are symmetrical ... we only set wantoptions here */
+- { "require-mppe", o_bool, &ccp_wantoptions[0].mppe,
+- "require MPPE encryption",
+- OPT_PRIO | MPPE_OPT_40 | MPPE_OPT_128 },
+- { "+mppe", o_bool, &ccp_wantoptions[0].mppe,
+- "require MPPE encryption",
+- OPT_ALIAS | OPT_PRIO | MPPE_OPT_40 | MPPE_OPT_128 },
+- { "nomppe", o_bool, &ccp_wantoptions[0].mppe,
+- "don't allow MPPE encryption", OPT_PRIO },
+- { "-mppe", o_bool, &ccp_wantoptions[0].mppe,
+- "don't allow MPPE encryption", OPT_ALIAS | OPT_PRIO },
+-
+- /* We use ccp_allowoptions[0].mppe as a junk var ... it is reset later */
+- { "require-mppe-40", o_bool, &ccp_allowoptions[0].mppe,
+- "require MPPE 40-bit encryption", OPT_PRIO | OPT_A2OR | MPPE_OPT_40,
+- &ccp_wantoptions[0].mppe },
+- { "+mppe-40", o_bool, &ccp_allowoptions[0].mppe,
+- "require MPPE 40-bit encryption", OPT_PRIO | OPT_A2OR | MPPE_OPT_40,
+- &ccp_wantoptions[0].mppe },
+- { "nomppe-40", o_bool, &ccp_allowoptions[0].mppe,
+- "don't allow MPPE 40-bit encryption",
+- OPT_PRIOSUB | OPT_A2CLRB | MPPE_OPT_40, &ccp_wantoptions[0].mppe },
+- { "-mppe-40", o_bool, &ccp_allowoptions[0].mppe,
+- "don't allow MPPE 40-bit encryption",
+- OPT_ALIAS | OPT_PRIOSUB | OPT_A2CLRB | MPPE_OPT_40,