add parprouted
authorNicolas Thill <nico@openwrt.org>
Sun, 24 Jul 2005 23:44:19 +0000 (23:44 +0000)
committerNicolas Thill <nico@openwrt.org>
Sun, 24 Jul 2005 23:44:19 +0000 (23:44 +0000)
SVN-Revision: 1542

openwrt/package/Config.in
openwrt/package/Makefile
openwrt/package/parprouted/Config.in [new file with mode: 0644]
openwrt/package/parprouted/Makefile [new file with mode: 0644]
openwrt/package/parprouted/files/parprouted.default [new file with mode: 0755]
openwrt/package/parprouted/files/parprouted.init [new file with mode: 0755]
openwrt/package/parprouted/ipkg/parprouted.conffiles [new file with mode: 0644]
openwrt/package/parprouted/ipkg/parprouted.control [new file with mode: 0644]
openwrt/package/parprouted/patches/parprouted.patch [new file with mode: 0644]

index 93e55e73a7d9a0727f469668f710c68137427fdc..3f5ff99bf7fda2d25c7d42cfce946609180f437c 100644 (file)
@@ -69,6 +69,7 @@ source "package/openntpd/Config.in"
 source "package/openssh/Config.in"
 source "package/openswan/Config.in"
 source "package/openvpn/Config.in"
+source "package/parprouted/Config.in"
 source "package/pmacct/Config.in"
 source "package/portmap/Config.in"
 source "package/portsentry/Config.in"
index b0028761391cc6371fc599c05a1165cf3776d9a5..f579f350519d56f9db1d7c31d18a3d8ea1f20acb 100644 (file)
@@ -93,6 +93,7 @@ package-$(BR2_PACKAGE_OPENSSL) += openssl
 package-$(BR2_PACKAGE_OPENSWAN) += openswan
 package-$(BR2_PACKAGE_OPENVPN) += openvpn
 package-$(BR2_PACKAGE_OSIRIS) += osiris
+package-$(BR2_PACKAGE_PARPROUTED) += parprouted
 package-$(BR2_PACKAGE_PCRE) += pcre
 package-$(BR2_PACKAGE_PHP4) += php4
 package-$(BR2_PACKAGE_PICOCOM) += picocom
diff --git a/openwrt/package/parprouted/Config.in b/openwrt/package/parprouted/Config.in
new file mode 100644 (file)
index 0000000..16a8f2e
--- /dev/null
@@ -0,0 +1,11 @@
+config BR2_PACKAGE_PARPROUTED
+       tristate "parprouted - Proxy ARP daemon"
+#      default m if CONFIG_DEVEL
+       default n
+       help
+         parprouted is a daemon for transparent IP (Layer 3) proxy ARP bridging.
+         This is useful for creation of transparent firewalls and bridging networks 
+         with different MAC protocols. Also, unlike standard bridging, proxy ARP 
+         bridging allows to bridge Ethernet networks behind wireless nodes without 
+         using WDS or layer 2 bridging.
+         
diff --git a/openwrt/package/parprouted/Makefile b/openwrt/package/parprouted/Makefile
new file mode 100644 (file)
index 0000000..fc37e10
--- /dev/null
@@ -0,0 +1,42 @@
+# $Id$
+
+include $(TOPDIR)/rules.mk
+
+PKG_NAME:=parprouted
+PKG_VERSION:=0.63
+PKG_RELEASE:=1
+PKG_MD5SUM:=12753098a22e82997d1941d6d2284750
+
+PKG_SOURCE_URL:=http://www.hazard.maks.net/parprouted/
+PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
+PKG_CAT:=zcat
+
+PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(PKG_VERSION)
+
+include $(TOPDIR)/package/rules.mk
+
+$(eval $(call PKG_template,PARPROUTED,parprouted,$(PKG_VERSION)-$(PKG_RELEASE),$(ARCH)))
+
+$(PKG_BUILD_DIR)/.configured:
+       touch $@
+
+$(PKG_BUILD_DIR)/.built:
+       $(MAKE) -C $(PKG_BUILD_DIR) \
+               CC="$(TARGET_CC)" CFLAGS="$(TARGET_CFLAGS)" \
+               all
+       touch $@
+
+$(IPKG_PARPROUTED): 
+       install -d -m0755 $(IDIR_PARPROUTED)/etc/default
+       install -m0755 ./files/parprouted.default $(IDIR_PARPROUTED)/etc/default/parprouted
+       install -d -m0755 $(IDIR_PARPROUTED)/etc/init.d
+       install -m0755 ./files/parprouted.init $(IDIR_PARPROUTED)/etc/init.d/parprouted
+       ln -sf parprouted $(IDIR_PARPROUTED)/etc/init.d/S50parpouted
+       install -d -m0755 $(IDIR_PARPROUTED)/usr/sbin
+       install -m0755 $(PKG_BUILD_DIR)/parprouted $(IDIR_PARPROUTED)/usr/sbin/
+       $(RSTRIP) $(IDIR_PARPROUTED)
+       $(IPKG_BUILD) $(IDIR_PARPROUTED) $(PACKAGE_DIR)
+
+mostlyclean:
+       -$(MAKE) -C $(PKG_BUILD_DIR) clean
+       rm -f $(PKG_BUILD_DIR)/.built
diff --git a/openwrt/package/parprouted/files/parprouted.default b/openwrt/package/parprouted/files/parprouted.default
new file mode 100755 (executable)
index 0000000..17169c4
--- /dev/null
@@ -0,0 +1,3 @@
+LAN_IF=$(nvram get lan_ifname)
+WIFI_IF=$(nvram get wifi_ifname)
+OPTIONS="$LAN_IF $WIFI_IF"
diff --git a/openwrt/package/parprouted/files/parprouted.init b/openwrt/package/parprouted/files/parprouted.init
new file mode 100755 (executable)
index 0000000..2422657
--- /dev/null
@@ -0,0 +1,16 @@
+#!/bin/sh
+
+BIN=parprouted
+DEFAULT=/etc/default/$BIN
+[ -f $DEFAULT ] && . $DEFAULT
+
+case $1 in
+ start)
+  $BIN $OPTIONS
+  ;;
+ *)
+  echo "usage: $0 (start)"
+  exit 1
+esac
+
+exit $?
diff --git a/openwrt/package/parprouted/ipkg/parprouted.conffiles b/openwrt/package/parprouted/ipkg/parprouted.conffiles
new file mode 100644 (file)
index 0000000..4446a8e
--- /dev/null
@@ -0,0 +1 @@
+/etc/default/parprouted
diff --git a/openwrt/package/parprouted/ipkg/parprouted.control b/openwrt/package/parprouted/ipkg/parprouted.control
new file mode 100644 (file)
index 0000000..12bfd12
--- /dev/null
@@ -0,0 +1,9 @@
+Package: parprouted
+Priority: optional
+Section: net
+Version: [TBDL]
+Architecture: [TBDL]
+Maintainer: OpenWrt Developers Team <bugs@openwrt.org>
+Source:  http://openwrt.org/cgi-bin/viewcvs.cgi/openwrt/package/parprouted/
+Description: a proxy ARP daemon
+Depends: libpthread
diff --git a/openwrt/package/parprouted/patches/parprouted.patch b/openwrt/package/parprouted/patches/parprouted.patch
new file mode 100644 (file)
index 0000000..17fbdec
--- /dev/null
@@ -0,0 +1,33 @@
+diff -rupw parprouted-0.63/arp.c parprouted-0.63-1/arp.c
+--- parprouted-0.63/arp.c      2004-05-23 14:06:31.000000000 +0200
++++ parprouted-0.63-1/arp.c    2005-03-13 16:10:18.000000000 +0100
+@@ -366,7 +366,7 @@ void *arp(char *ifname) 
+     do {
+       pthread_testcancel();
+       /* Sleep a bit in order not to overload the system */
+-      usleep(300);
++      usleep(3000);
+       if (arp_recv(sock, &frame) <= 0)
+           continue;
+diff -rupw parprouted-0.63/parprouted.c parprouted-0.63-1/parprouted.c
+--- parprouted-0.63/parprouted.c       2004-01-30 02:45:43.000000000 +0100
++++ parprouted-0.63-1/parprouted.c     2005-03-20 09:14:35.000000000 +0100
+@@ -93,7 +93,7 @@ void processarp(int cleanup) 
+           /* added route to the kernel */
+           if (snprintf(routecmd_str, ROUTE_CMD_LEN-1, 
+-                   "/sbin/ip route add %s/32 metric 50 dev %s scope link",
++                   "/sbin/route add -host %s metric 50 dev %s",
+                    inet_ntoa(cur_entry->ipaddr_ia), cur_entry->ifname) > ROUTE_CMD_LEN-1) 
+           {
+               syslog(LOG_INFO, "ip route command too large to fit in buffer!");
+@@ -112,7 +112,7 @@ void processarp(int cleanup) 
+           /* remove entry from arp table and remove route from kernel */
+           if (snprintf(routecmd_str, ROUTE_CMD_LEN-1, 
+-                   "/sbin/ip route del %s/32 metric 50 dev %s scope link",
++                   "/sbin/route del -host %s metric 50 dev %s",
+                    inet_ntoa(cur_entry->ipaddr_ia), cur_entry->ifname) > ROUTE_CMD_LEN-1) 
+           {
+               syslog(LOG_INFO, "ip route command too large to fit in buffer!");