Add support for IP over ATM
authorFlorian Fainelli <florian@openwrt.org>
Sat, 15 Sep 2007 21:01:43 +0000 (21:01 +0000)
committerFlorian Fainelli <florian@openwrt.org>
Sat, 15 Sep 2007 21:01:43 +0000 (21:01 +0000)
SVN-Revision: 8782

package/linux-atm/Makefile
package/linux-atm/files/ipoa.sh [new file with mode: 0644]
package/linux-atm/patches/500-reenable_arpd.patch [new file with mode: 0644]
package/linux-atm/patches/600-arpd_includes.patch [new file with mode: 0644]

index f7d52141f38448c19344241902a39394b1d720d9..ecadb3d6ad20db1b5647b123e6ac7dcc6a082aaf 100644 (file)
@@ -29,6 +29,18 @@ define Package/linux-atm/description
   This package contains a library for accessing the Linux ATM subsystem.
 endef
 
+define Package/atm-tools
+  SECTION:=net
+  CATEGORY:=Network
+  DEPENDS:=linux-atm
+  TITLE:=Linux ATM tools
+  URL:=http://linux-atm.sourceforge.net/
+endef
+
+define Package/atm-tools/description
+  This package contains the Linux ATM tools.
+endef
+
 define Build/Configure
        $(call Build/Configure/Default)
        # prevent autoheader invocation
@@ -62,4 +74,12 @@ define Package/linux-atm/install
        cp -f $(PKG_INSTALL_DIR)/usr/lib/libatm.so.1 $(1)/usr/lib
 endef
 
+define Package/atm-tools/install
+       $(INSTALL_DIR) $(1)/usr/sbin/
+       $(CP) $(PKG_INSTALL_DIR)/usr/sbin/atmarp{,d} $(1)/usr/sbin/
+       $(INSTALL_DIR) $(1)/lib/network
+       $(INSTALL_BIN) ./files/ipoa.sh $(1)/lib/network/
+endef
+
 $(eval $(call BuildPackage,linux-atm))
+$(eval $(call BuildPackage,atm-tools))
diff --git a/package/linux-atm/files/ipoa.sh b/package/linux-atm/files/ipoa.sh
new file mode 100644 (file)
index 0000000..5d6da1e
--- /dev/null
@@ -0,0 +1,34 @@
+scan_ipoa() {
+       config_get ifname "$1" ifname
+       ipoadev="${ipoadev:-0}"
+       config_get unit "$1" unit
+       [ -z "$unit" ] && {
+               config_set "$1" ifname "atm$ipoadev"
+               config_set "$1" unit "$ipoadev"
+               ipoadev="$(($ipoadev + 1))"
+       }
+}
+
+setup_interface_ipoa() {
+       local iface="$1"
+       local config="$2"
+       
+       config_get device "$config" device
+       config_get vpi "$config" vpi
+       vpi=${vpi:-8}
+       config_get vci "$config" vci
+       vci=${vci:-36}
+
+       config_get encaps "$config" encaps
+       case "$encaps" in
+               1|vc) ENCAPS="vc-encaps" ;;
+               *) ENCAPS="llc-encaps" ;;
+       esac
+
+       config_get mtu "$cfg" mtu
+       mtu=${mtu:-1500}
+       atmarp -c $device
+       ifconfig $device $ip netmask $mask mtu $mtu up
+       atmarp -s $gw $vpi.$vci null
+       route add default gw $gw
+}
diff --git a/package/linux-atm/patches/500-reenable_arpd.patch b/package/linux-atm/patches/500-reenable_arpd.patch
new file mode 100644 (file)
index 0000000..1e42f75
--- /dev/null
@@ -0,0 +1,49 @@
+diff -urN linux-atm-2.4.1/configure linux-atm-2.4.1.new/configure
+--- linux-atm-2.4.1/configure  2007-09-15 21:07:25.000000000 +0200
++++ linux-atm-2.4.1.new/configure      2007-09-15 22:07:22.000000000 +0200
+@@ -8825,7 +8825,7 @@
+ fi;
+-                                                                      ac_config_files="$ac_config_files Makefile doc/Makefile m4/Makefile src/Makefile src/include/Makefile src/lib/Makefile"
++                                                                      ac_config_files="$ac_config_files Makefile doc/Makefile m4/Makefile src/Makefile src/include/Makefile src/lib/Makefile src/arpd/Makefile"
+ cat >confcache <<\_ACEOF
+ # This file is a shell script that caches the results of configure
+ # tests run on this system so they can be shared between configure
+@@ -9367,6 +9367,7 @@
+   "src/Makefile" ) CONFIG_FILES="$CONFIG_FILES src/Makefile" ;;
+   "src/include/Makefile" ) CONFIG_FILES="$CONFIG_FILES src/include/Makefile" ;;
+   "src/lib/Makefile" ) CONFIG_FILES="$CONFIG_FILES src/lib/Makefile" ;;
++  "src/arpd/Makefile" ) CONFIG_FILES="$CONFIG_FILES src/arpd/Makefile" ;;
+   "default-1" ) CONFIG_COMMANDS="$CONFIG_COMMANDS default-1" ;;
+   "config.h" ) CONFIG_HEADERS="$CONFIG_HEADERS config.h" ;;
+   *) { { echo "$as_me:$LINENO: error: invalid argument: $ac_config_target" >&5
+diff -urN linux-atm-2.4.1/configure.in linux-atm-2.4.1.new/configure.in
+--- linux-atm-2.4.1/configure.in       2007-09-15 21:07:13.000000000 +0200
++++ linux-atm-2.4.1.new/configure.in   2007-09-15 21:08:16.000000000 +0200
+@@ -153,5 +153,6 @@
+               src/Makefile \
+               src/include/Makefile \
+               src/lib/Makefile \
++              src/arpd/Makefile \
+               )
+diff -urN linux-atm-2.4.1/src/Makefile.am linux-atm-2.4.1.new/src/Makefile.am
+--- linux-atm-2.4.1/src/Makefile.am    2007-09-15 21:07:13.000000000 +0200
++++ linux-atm-2.4.1.new/src/Makefile.am        2007-09-15 21:08:27.000000000 +0200
+@@ -1,2 +1,2 @@
+-SUBDIRS = include lib
++SUBDIRS = include lib arpd
+diff -urN linux-atm-2.4.1/src/Makefile.in linux-atm-2.4.1.new/src/Makefile.in
+--- linux-atm-2.4.1/src/Makefile.in    2007-09-15 21:07:25.000000000 +0200
++++ linux-atm-2.4.1.new/src/Makefile.in        2007-09-15 22:10:03.000000000 +0200
+@@ -96,7 +96,7 @@
+ VERSION = @VERSION@
+ YACC = @YACC@
+-SUBDIRS = include lib
++SUBDIRS = include lib arpd
+ mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+ CONFIG_HEADER = ../config.h
+ CONFIG_CLEAN_FILES = 
diff --git a/package/linux-atm/patches/600-arpd_includes.patch b/package/linux-atm/patches/600-arpd_includes.patch
new file mode 100644 (file)
index 0000000..c753802
--- /dev/null
@@ -0,0 +1,45 @@
+diff -Nru linux-atm-2.4.1.orig/src/arpd/io.c linux-atm-2.4.1/src/arpd/io.c
+--- linux-atm-2.4.1.orig/src/arpd/io.c  2001-09-03 21:41:05.000000000 +0300
++++ linux-atm-2.4.1/src/arpd/io.c       2007-04-14 18:30:54.000000000 +0300
+@@ -16,7 +16,7 @@
+ #include <sys/types.h>
+ #include <sys/socket.h>
+ #include <sys/ioctl.h>
+-#include <net/if.h>
++#include <linux/if.h>
+ #include <netinet/in.h>
+ #include <atm.h>
+ #include <linux/atmclip.h> /* for CLIP_DEFAULT_IDLETIMER */
+diff -urN linux-atm-2.4.1/src/arpd/arp.c linux-atm-2.4.1.new/src/arpd/arp.c
+--- linux-atm-2.4.1/src/arpd/arp.c     2001-09-03 20:41:05.000000000 +0200
++++ linux-atm-2.4.1.new/src/arpd/arp.c 2007-09-15 22:15:05.000000000 +0200
+@@ -15,7 +15,6 @@
+ #include <sys/types.h>
+ #include <sys/socket.h> /* for linux/if_arp.h */
+ #include <netinet/in.h> /* for ntohs, etc. */
+-#define _LINUX_NETDEVICE_H /* very crude hack for glibc2 */
+ #include <linux/if_arp.h>
+ #include <linux/if_ether.h>
+ #include <atm.h>
+diff -urN linux-atm-2.4.1/src/arpd/io.c linux-atm-2.4.1.new/src/arpd/io.c
+--- linux-atm-2.4.1/src/arpd/io.c      2001-09-03 20:41:05.000000000 +0200
++++ linux-atm-2.4.1.new/src/arpd/io.c  2007-09-15 22:15:05.000000000 +0200
+@@ -21,7 +21,6 @@
+ #include <atm.h>
+ #include <linux/atmclip.h> /* for CLIP_DEFAULT_IDLETIMER */
+ #include <linux/atmarp.h>
+-#define _LINUX_NETDEVICE_H /* glibc2 */
+ #include <linux/if_arp.h>
+ #include "atmd.h"
+diff -urN linux-atm-2.4.1/src/arpd/itf.c linux-atm-2.4.1.new/src/arpd/itf.c
+--- linux-atm-2.4.1/src/arpd/itf.c     2001-09-03 20:41:05.000000000 +0200
++++ linux-atm-2.4.1.new/src/arpd/itf.c 2007-09-15 22:15:05.000000000 +0200
+@@ -12,7 +12,6 @@
+ #include <sys/types.h>
+ #include <linux/atmclip.h>
+ #include <sys/socket.h>
+-#define _LINUX_NETDEVICE_H /* glibc2 */
+ #include <linux/if_arp.h>
+ #include "atmd.h"