From 7fdfde3edce76a7edb8378f80c67ad9932f768ff Mon Sep 17 00:00:00 2001
From: Felix Fietkau <nbd@openwrt.org>
Date: Fri, 26 Aug 2005 15:52:12 +0000
Subject: [PATCH] clean up board-dependent files, add pppoatm support, add
 proper config examples

SVN-Revision: 1754
---
 openwrt/package/Makefile                      |  3 +-
 openwrt/package/ppp/Config.in                 |  7 +++
 openwrt/package/ppp/Makefile                  |  8 ++++
 openwrt/package/ppp/files/ifup.pppoa          | 45 +++++++++++++++++++
 .../package/ppp/ipkg/ppp-mod-pppoa.control    |  7 +++
 openwrt/package/ppp/patches/202-atm_fix.patch | 21 +++++++++
 openwrt/package/ppp/patches/202-no_atm.patch  | 12 -----
 openwrt/target/linux/package/openwrt/Makefile |  6 +--
 .../openwrt/files/ar7/etc/config/network      | 31 +++++++++++++
 .../etc/network.overrides}                    |  0
 .../openwrt/files/brcm/etc/config/network     | 18 ++++++++
 .../etc/init.d/S05nvram}                      |  0
 .../etc/network.overrides}                    |  0
 .../openwrt/files/soekris}/etc/config/network |  3 +-
 .../etc/network.overrides}                    |  0
 15 files changed, 144 insertions(+), 17 deletions(-)
 create mode 100644 openwrt/package/ppp/files/ifup.pppoa
 create mode 100644 openwrt/package/ppp/ipkg/ppp-mod-pppoa.control
 create mode 100644 openwrt/package/ppp/patches/202-atm_fix.patch
 delete mode 100644 openwrt/package/ppp/patches/202-no_atm.patch
 create mode 100644 openwrt/target/linux/package/openwrt/files/ar7/etc/config/network
 rename openwrt/target/linux/package/openwrt/files/{network.overrides.ar7 => ar7/etc/network.overrides} (100%)
 create mode 100644 openwrt/target/linux/package/openwrt/files/brcm/etc/config/network
 rename openwrt/target/linux/package/openwrt/files/{S05nvram.brcm => brcm/etc/init.d/S05nvram} (100%)
 rename openwrt/target/linux/package/openwrt/files/{network.overrides.brcm => brcm/etc/network.overrides} (100%)
 rename openwrt/{package/base-files/default => target/linux/package/openwrt/files/soekris}/etc/config/network (91%)
 rename openwrt/target/linux/package/openwrt/files/{network.overrides.soekris => soekris/etc/network.overrides} (100%)

diff --git a/openwrt/package/Makefile b/openwrt/package/Makefile
index 0b9794132b..9ee4fa9e58 100644
--- a/openwrt/package/Makefile
+++ b/openwrt/package/Makefile
@@ -164,7 +164,7 @@ package-$(BR2_PACKAGE_WPUT) += wput
 package-$(BR2_PACKAGE_XINETD) += xinetd
 package-$(BR2_PACKAGE_ZLIB) += zlib
 
-DEV_LIBS:=tcp_wrappers glib ncurses openssl pcre popt zlib libnet libpcap mysql postgresql iptables matrixssl lzo gmp fuse portmap libelf uclibc++ speex libpng libgd wireless-tools nvram
+DEV_LIBS:=tcp_wrappers glib ncurses openssl pcre popt zlib libnet libpcap mysql postgresql iptables matrixssl lzo gmp fuse portmap libelf uclibc++ speex libpng libgd wireless-tools nvram linux-atm
 DEV_LIBS_COMPILE:=$(patsubst %,%-compile,$(DEV_LIBS))
 SDK_DEFAULT_PACKAGES:=busybox dnsmasq iptables wireless-tools dropbear bridge ipkg ppp
 SDK_DEFAULT_COMPILE:=$(patsubst %,%-compile,$(SDK_DEFAULT_PACKAGES))
@@ -217,6 +217,7 @@ openswan-compile: gmp-compile
 osiris-compile: openssl-compile
 portmap-compile: tcp_wrappers-compile
 postgresql-compile: zlib-compile
+ppp-compile: linux-atm-compile
 quagga-compile: readline-compile ncurses-compile
 rrdcollect-compile: rrdtool-compile
 rrdtool-compile: cgilib-compile freetype-compile libart-compile libpng-compile
diff --git a/openwrt/package/ppp/Config.in b/openwrt/package/ppp/Config.in
index 951c248829..4feadee868 100644
--- a/openwrt/package/ppp/Config.in
+++ b/openwrt/package/ppp/Config.in
@@ -6,6 +6,13 @@ config BR2_PACKAGE_PPP
 	default y
 	select BR2_PACKAGE_KMOD_PPP
 
+config BR2_PACKAGE_PPP_MOD_PPPOA
+	prompt "...-mod-pppoa - PPPoA (PPP over ATM) plugin"
+	tristate
+	default y if BR2_LINUX_2_4_AR7
+	depends on BR2_PACKAGE_PPP
+	select BR2_PACKAGE_KMOD_PPPOA
+
 config BR2_PACKAGE_PPP_MOD_PPPOE
 	prompt "...-mod-pppoe - PPPoE (PPP over Ethernet) plugin"
 	tristate
diff --git a/openwrt/package/ppp/Makefile b/openwrt/package/ppp/Makefile
index 0fed25c91e..1b20c4e7cd 100644
--- a/openwrt/package/ppp/Makefile
+++ b/openwrt/package/ppp/Makefile
@@ -28,12 +28,14 @@ $$(IPKG_$(1)):
 endef
 
 $(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,CHAT,chat,$(PKG_VERSION)-$(PKG_RELEASE),$(ARCH)))
 $(eval $(call PKG_template,PPPDUMP,pppdump,$(PKG_VERSION)-$(PKG_RELEASE),$(ARCH)))
 $(eval $(call PKG_template,PPPSTATS,pppstats,$(PKG_VERSION)-$(PKG_RELEASE),$(ARCH)))
 
+$(eval $(call PKG_mod_template,PPP_MOD_PPPOA,pppoatm))
 $(eval $(call PKG_mod_template,PPP_MOD_PPPOE,rp-pppoe))
 $(eval $(call PKG_mod_template,PPP_MOD_RADIUS,radius))
 
@@ -88,6 +90,12 @@ $(IPKG_PPP):
 	$(RSTRIP) $(IDIR_PPP)
 	$(IPKG_BUILD) $(IDIR_PPP) $(PACKAGE_DIR)
 	
+$(IDIR_PPP_MOD_PPPOA)/sbin/ifup.pppoa:
+	install -d -m0755 $(IDIR_PPP_MOD_PPPOA)/sbin
+	install -m0755 ./files/ifup.pppoa $(IDIR_PPP_MOD_PPPOA)/sbin/
+
+$(IPKG_PPP_MOD_PPPOA): $(IDIR_PPP_MOD_PPPOA)/sbin/ifup.pppoa
+
 $(IDIR_PPP_MOD_PPPOE)/sbin/ifup.pppoe:
 	install -d -m0755 $(IDIR_PPP_MOD_PPPOE)/sbin
 	install -m0755 ./files/ifup.pppoe $(IDIR_PPP_MOD_PPPOE)/sbin/
diff --git a/openwrt/package/ppp/files/ifup.pppoa b/openwrt/package/ppp/files/ifup.pppoa
new file mode 100644
index 0000000000..ee88e4b9e9
--- /dev/null
+++ b/openwrt/package/ppp/files/ifup.pppoa
@@ -0,0 +1,45 @@
+#!/bin/sh
+[ $# = 0 ] && { echo "  $0 <group>"; exit; }
+. /etc/functions.sh
+. /etc/network.overrides
+[ -e /etc/config/network ] && . /etc/config/network
+type=$1
+
+[ "$(nvram get ${type}_proto)" = "pppoa" ] || {
+	echo "$0: ${type}_proto isn't pppoa"
+	exit
+}
+
+for module in slhc ppp_generic pppox pppoatm; do
+	/sbin/insmod $module 2>&- >&-
+done
+
+while :; do
+  VPI=$(nvram get atm_vpi)
+  VCI=$(nvram get atm_vci)
+  USERNAME=$(nvram get ppp_username)
+  PASSWORD=$(nvram get ppp_passwd)
+  REDIAL=$(nvram get ppp_redialperiod)
+  REDIAL=${REDIAL:+lcp-echo-interval $REDIAL}
+  IDLETIME=$(nvram get ppp_idletime)
+  IDLETIME=${IDLETIME:+lcp-echo-failure $IDLETIME}
+  MTU=$(nvram get ppp_mtu)
+  MTU=${MTU:-1492}
+  MTU=${MTU:+ mtu $MTU mru $MTU}
+
+  ifconfig $IFNAME up
+  /usr/sbin/pppd nodetach \
+	plugin pppoatm.so ${VPI:-8}.${VCI:-35} \
+  	connect /bin/true \
+  	usepeerdns \
+  	defaultroute \
+  	linkname $type \
+  	user "$USERNAME" \
+  	password "$PASSWORD" \
+  	$MTU \
+  	$IDLETIME \
+  	$REDIAL
+  
+  # Read settings again (might have changed)
+  [ -e /etc/config/network ] && . /etc/config/network
+done &
diff --git a/openwrt/package/ppp/ipkg/ppp-mod-pppoa.control b/openwrt/package/ppp/ipkg/ppp-mod-pppoa.control
new file mode 100644
index 0000000000..94e5e101b8
--- /dev/null
+++ b/openwrt/package/ppp/ipkg/ppp-mod-pppoa.control
@@ -0,0 +1,7 @@
+Package: ppp-mod-pppoa
+Priority: optional
+Section: net
+Maintainer: Matteo Croce <3297627799@wind.it>
+Source: buildroot internal
+Description: a PPPoA (PPP over ATM) plugin for PPP
+Depends: ppp, kmod-pppoa
diff --git a/openwrt/package/ppp/patches/202-atm_fix.patch b/openwrt/package/ppp/patches/202-atm_fix.patch
new file mode 100644
index 0000000000..371dc9611e
--- /dev/null
+++ b/openwrt/package/ppp/patches/202-atm_fix.patch
@@ -0,0 +1,21 @@
+--- ppp-2.4.3/pppd/plugins/pppoatm/pppoatm.c	2005-08-26 15:18:55.000000000 +0200
++++ ppp-2.4.3/pppd/plugins/pppoatm/pppoatm.c	2005-08-26 15:19:51.000000000 +0200
+@@ -136,8 +136,6 @@
+ 	int fd;
+ 	struct atm_qos qos;
+ 
+-	system ("/sbin/modprobe pppoatm");
+-
+ 	if (!device_got_set)
+ 		no_device_given_pppoatm();
+ 	fd = socket(AF_ATMPVC, SOCK_DGRAM, 0);
+@@ -152,8 +150,7 @@
+ 	qos.txtp.max_sdu = lcp_allowoptions[0].mru + pppoatm_overhead();
+ 	qos.rxtp.max_sdu = lcp_wantoptions[0].mru + pppoatm_overhead();
+ 	qos.aal = ATM_AAL5;
+-	if (setsockopt(fd, SOL_ATM, SO_ATMQOS, &qos, sizeof(qos)) < 0)
+-		fatal("setsockopt(SO_ATMQOS): %m");
++	setsockopt(fd, SOL_ATM, SO_ATMQOS, &qos, sizeof(qos));
+ 	/* TODO: accept on SVCs... */
+ 	if (connect(fd, (struct sockaddr *) &pvcaddr,
+ 	    sizeof(struct sockaddr_atmpvc)))
diff --git a/openwrt/package/ppp/patches/202-no_atm.patch b/openwrt/package/ppp/patches/202-no_atm.patch
deleted file mode 100644
index a737cfa23a..0000000000
--- a/openwrt/package/ppp/patches/202-no_atm.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff -ruN ppp-2.4.3-orig/pppd/plugins/Makefile.linux ppp-2.4.3-3/pppd/plugins/Makefile.linux
---- ppp-2.4.3-orig/pppd/plugins/Makefile.linux	2004-11-14 08:57:35.000000000 +0100
-+++ ppp-2.4.3-3/pppd/plugins/Makefile.linux	2004-12-05 17:03:59.000000000 +0100
-@@ -9,7 +9,7 @@
- MANDIR = $(DESTDIR)/share/man/man8
- LIBDIR = $(DESTDIR)/lib/pppd/$(VERSION)
- 
--SUBDIRS := rp-pppoe pppoatm radius
-+SUBDIRS := rp-pppoe radius
- # Uncomment the next line to include the radius authentication plugin
- # SUBDIRS += radius
- PLUGINS := minconn.so passprompt.so passwordfd.so winbind.so
diff --git a/openwrt/target/linux/package/openwrt/Makefile b/openwrt/target/linux/package/openwrt/Makefile
index 6fb20d6229..6fa350a9dd 100644
--- a/openwrt/target/linux/package/openwrt/Makefile
+++ b/openwrt/target/linux/package/openwrt/Makefile
@@ -36,9 +36,9 @@ $(IDIR_OPENWRT):
 	$(SED) s,base-files-arch,base-files-$(BOARD),g $(IDIR_OPENWRT)/CONTROL/control
 
 $(IPKG_OPENWRT): $(IDIR_OPENWRT)
-	mkdir -p $(IDIR_OPENWRT)/etc/init.d
-	[ -f files/network.overrides.$(BOARD) ] && cp files/network.overrides.$(BOARD) $(IDIR_OPENWRT)/etc/network.overrides
-	[ -f files/S05nvram.$(BOARD) ] && install -m0755 files/S05nvram.$(BOARD) $(IDIR_OPENWRT)/etc/init.d/S05nvram
+	[ -d files/$(BOARD) ] && cp -a files/$(BOARD)/* $(IDIR_OPENWRT)/
+	find $(IDIR_OPENWRT) -name CVS | xargs rm -rf
+	find $(IDIR_OPENWRT) -name .svn | xargs rm -rf
 	$(RSTRIP) $(IDIR_OPENWRT)
 	$(IPKG_BUILD) $(IDIR_OPENWRT) $(PACKAGE_DIR)
 
diff --git a/openwrt/target/linux/package/openwrt/files/ar7/etc/config/network b/openwrt/target/linux/package/openwrt/files/ar7/etc/config/network
new file mode 100644
index 0000000000..785ad05ee6
--- /dev/null
+++ b/openwrt/target/linux/package/openwrt/files/ar7/etc/config/network
@@ -0,0 +1,31 @@
+# Network configuration file
+# Uncomment the following statements to change the network configuration
+
+## LAN configuration
+# lan_ifame="br0"
+# lan_proto="static"
+# lan_ipaddr="192.168.1.1"
+# lan_netmask="255.255.255.0"
+# lan_gateway=""
+# lan_dns=""
+
+## WAN configuration (PPPoE)
+# wan_type=pppoe
+# wan_ifname=ppp0
+# pppoe_atm=1
+# pppoe_ifname=nas0
+# atm_vpi=8
+# atm_vci=35
+# ppp_username=my_username
+# ppp_passwd=my_passwd
+# ppp_mtu=1492
+
+## WAN configuration (PPPoA)
+# wan_type=pppoa
+# wan_ifname=ppp0
+# atm_vpi=8
+# atm_vci=35
+# ppp_username=my_username
+# ppp_passwd=my_passwd
+# ppp_mtu=1492
+
diff --git a/openwrt/target/linux/package/openwrt/files/network.overrides.ar7 b/openwrt/target/linux/package/openwrt/files/ar7/etc/network.overrides
similarity index 100%
rename from openwrt/target/linux/package/openwrt/files/network.overrides.ar7
rename to openwrt/target/linux/package/openwrt/files/ar7/etc/network.overrides
diff --git a/openwrt/target/linux/package/openwrt/files/brcm/etc/config/network b/openwrt/target/linux/package/openwrt/files/brcm/etc/config/network
new file mode 100644
index 0000000000..6f09a502a8
--- /dev/null
+++ b/openwrt/target/linux/package/openwrt/files/brcm/etc/config/network
@@ -0,0 +1,18 @@
+# Network configuration file
+# Uncomment the following statements to override the default or nvram config
+
+## LAN configuration
+# lan_ifame="br0"
+# lan_proto="static"
+# lan_ipaddr="192.168.1.1"
+# lan_netmask="255.255.255.0"
+# lan_gateway=""
+# lan_dns=""
+
+## WAN configuration (PPPoE)
+# wan_type=pppoe
+# wan_ifname=ppp0
+# pppoe_ifname=vlan1
+# ppp_username=my_username
+# ppp_passwd=my_passwd
+# ppp_mtu=1492
diff --git a/openwrt/target/linux/package/openwrt/files/S05nvram.brcm b/openwrt/target/linux/package/openwrt/files/brcm/etc/init.d/S05nvram
similarity index 100%
rename from openwrt/target/linux/package/openwrt/files/S05nvram.brcm
rename to openwrt/target/linux/package/openwrt/files/brcm/etc/init.d/S05nvram
diff --git a/openwrt/target/linux/package/openwrt/files/network.overrides.brcm b/openwrt/target/linux/package/openwrt/files/brcm/etc/network.overrides
similarity index 100%
rename from openwrt/target/linux/package/openwrt/files/network.overrides.brcm
rename to openwrt/target/linux/package/openwrt/files/brcm/etc/network.overrides
diff --git a/openwrt/package/base-files/default/etc/config/network b/openwrt/target/linux/package/openwrt/files/soekris/etc/config/network
similarity index 91%
rename from openwrt/package/base-files/default/etc/config/network
rename to openwrt/target/linux/package/openwrt/files/soekris/etc/config/network
index 049460160a..8383edbb50 100644
--- a/openwrt/package/base-files/default/etc/config/network
+++ b/openwrt/target/linux/package/openwrt/files/soekris/etc/config/network
@@ -1,6 +1,7 @@
 # Network configuration file
-
 # Uncomment the following statements to override the default or nvram config
+
+## LAN configuration
 # lan_ifame="br0"
 # lan_proto="static"
 # lan_ipaddr="192.168.1.1"
diff --git a/openwrt/target/linux/package/openwrt/files/network.overrides.soekris b/openwrt/target/linux/package/openwrt/files/soekris/etc/network.overrides
similarity index 100%
rename from openwrt/target/linux/package/openwrt/files/network.overrides.soekris
rename to openwrt/target/linux/package/openwrt/files/soekris/etc/network.overrides
-- 
2.30.2