From 25bfff5314a2f5ec3a5d216d6a26f4d01758328d Mon Sep 17 00:00:00 2001
From: florian <florian@3c298f89-4303-0410-b956-a3cf2f4a3e73>
Date: Tue, 3 Jan 2006 12:53:01 +0000
Subject: Added mrd6 package : IPv6 multicast routing daemon

git-svn-id: svn://svn.openwrt.org/openwrt/trunk/openwrt@2816 3c298f89-4303-0410-b956-a3cf2f4a3e73
---
 package/Makefile                                  |  1 +
 package/base-files/default/etc/init.d/S45firewall |  8 +++--
 package/mrd6/Config.in                            | 14 ++++++++
 package/mrd6/Makefile                             | 44 +++++++++++++++++++++++
 package/mrd6/files/mrd6.conf                      | 14 ++++++++
 package/mrd6/files/mrd6.init                      | 29 +++++++++++++++
 package/mrd6/ipkg/mrd6.control                    |  6 ++++
 7 files changed, 113 insertions(+), 3 deletions(-)
 create mode 100644 package/mrd6/Config.in
 create mode 100644 package/mrd6/Makefile
 create mode 100644 package/mrd6/files/mrd6.conf
 create mode 100755 package/mrd6/files/mrd6.init
 create mode 100644 package/mrd6/ipkg/mrd6.control

diff --git a/package/Makefile b/package/Makefile
index 4f88b129d..a7eb2ddaf 100644
--- a/package/Makefile
+++ b/package/Makefile
@@ -127,6 +127,7 @@ package-$(BR2_PACKAGE_MINI_SENDMAIL) += mini_sendmail
 package-$(BR2_COMPILE_MIREDO) += miredo
 package-$(BR2_COMPILE_MONIT) += monit
 package-$(BR2_PACKAGE_MPD) += mpd
+package-$(BR2_PACKAGE_MRD6) += mrd6
 package-$(BR2_PACKAGE_MT_DAAPD) += mt-daapd
 package-$(BR2_PACKAGE_MTD) += mtd
 package-$(BR2_PACKAGE_MTR) += mtr
diff --git a/package/base-files/default/etc/init.d/S45firewall b/package/base-files/default/etc/init.d/S45firewall
index 8c67d82b1..0110cfc77 100755
--- a/package/base-files/default/etc/init.d/S45firewall
+++ b/package/base-files/default/etc/init.d/S45firewall
@@ -81,9 +81,11 @@ iptables -t nat -N postrouting_rule
   iptables -A FORWARD -j forwarding_rule
 
   # allow
-  iptables -A FORWARD -i br0 -o br0 -j ACCEPT
-  [ -z "$WAN" ] || iptables -A FORWARD -i $LAN -o $WAN -j ACCEPT
-
+  # if there is bridge splitting this workaround works too
+  for iface in $LAN; do
+  	iptables -A FORWARD -i $iface -o $iface -j ACCEPT
+	[ -z "$WAN" ] || iptables -A FORWARD -i $iface -o $WAN -j ACCEPT
+  done
   # reject (what to do with anything not allowed earlier)
   # uses the default -P DROP
 
diff --git a/package/mrd6/Config.in b/package/mrd6/Config.in
new file mode 100644
index 000000000..cacebe2ac
--- /dev/null
+++ b/package/mrd6/Config.in
@@ -0,0 +1,14 @@
+config BR2_PACKAGE_MRD6
+	prompt "mrd6.............................. IPv6 multicast routing daemon"
+	tristate
+	default m if CONFIG_DEVEL
+	help
+		Multicast is becoming a major component in next generation 
+		networks, used in several scenarios, from video broadcasting 
+		to multimedia conferencing. In order to be implemented, new 
+		technology needs supporting hardware and software across a set 
+		of devices and systems. MRD6 is an implementation of a modular 
+		IPv6 Multicast Routing Framework for the Linux operating system 
+		and provides MLDv2 (as well as MLDv1), PIM-SM and MBGP support.
+
+		http://artemis.av.it.pt/mrd6/
diff --git a/package/mrd6/Makefile b/package/mrd6/Makefile
new file mode 100644
index 000000000..250b14fe9
--- /dev/null
+++ b/package/mrd6/Makefile
@@ -0,0 +1,44 @@
+# $Id: Makefile 1146 2005-06-05 13:32:28Z florian $
+
+include $(TOPDIR)/rules.mk
+
+PKG_NAME:=mrd6
+PKG_VERSION:=0.9.4-beta2
+PKG_RELEASE:=1
+PKG_MD5SUM:=fe2e617954eccacd9b5c3d6e85f41c89
+
+PKG_SOURCE_URL:=http://hng.av.it.pt/mrd6/download/
+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,MRD6,$(PKG_NAME),$(PKG_VERSION)-$(PKG_RELEASE),$(ARCH)))
+
+$(PKG_BUILD_DIR)/.configured:
+	touch $@
+
+$(PKG_BUILD_DIR)/.built:
+	$(MAKE) -C $(PKG_BUILD_DIR)/src \
+		OPTIMIZE=yes \
+		SPACE_OPTIMIZE=yes \
+		FULL_STATIC=yes \
+		CFLAGS="$(TARGET_CFLAGS) -DNO_INET6_OPTION" \
+		CXX=$(TARGET_CROSS)g++ \
+		CC=$(TARGET_CC) \
+		STAGING_DIR=$(STAGING_DIR) \
+		PREFIX=/usr \
+		DESTDIR=$(PKG_INSTALL_DIR) \
+		install
+	install -d -m0755 $(PKG_INSTALL_DIR)/etc/init.d
+	install -m0644 files/$(PKG_NAME).conf $(PKG_INSTALL_DIR)/etc
+	install -m0755 files/$(PKG_NAME).init $(PKG_INSTALL_DIR)/etc/init.d/S60$(PKG_NAME)
+	touch $@
+
+$(IPKG_MRD6): 
+	mkdir -p $(IDIR_MRD6)/usr/sbin
+	cp -fpR $(PKG_INSTALL_DIR)/ $(IDIR_MRD6)/
+	$(RSTRIP) $(IDIR_MRD6)/
+	$(IPKG_BUILD) $(IDIR_MRD6) $(PACKAGE_DIR)
diff --git a/package/mrd6/files/mrd6.conf b/package/mrd6/files/mrd6.conf
new file mode 100644
index 000000000..84ce923a3
--- /dev/null
+++ b/package/mrd6/files/mrd6.conf
@@ -0,0 +1,14 @@
+log {
+	attach stderr normal;
+	attach default "/var/log/mrd6.log" message_err;
+}
+
+interfaces br0 enable = false;  // Should be vlan0 + eth1 but Linux bridge seems broken for multicast
+interfaces eth0 enable = false; // Interface to internal bridge
+handle-proper-bridge = true;    // use ETH_P_ALL to see all packets on wrt54g
+
+// The default configured RP is m6bone's Renater RP.
+// Change this according to your setup
+
+groups ff00::/8 pim rp = 2001:660:3007:300:1::;
+
diff --git a/package/mrd6/files/mrd6.init b/package/mrd6/files/mrd6.init
new file mode 100755
index 000000000..886723f15
--- /dev/null
+++ b/package/mrd6/files/mrd6.init
@@ -0,0 +1,29 @@
+#!/bin/sh
+
+case $1 in
+start)
+        /sbin/lsmod | grep ipv6 > /dev/null
+        if [ "$?" != "0" ]
+        then
+          echo -n "IPv6 stack required by mrd6. Loading ipv6 module: "
+          /sbin/insmod ipv6
+          echo "Done."
+        fi
+        echo -n "Starting IPv6 multicast router (mrd6): "
+	/usr/sbin/mrd6 -f /etc/mrd6.conf -D
+        echo "Done."
+        ;;
+stop)
+        echo -n "Stopping IPv6 multicast router (mrd6): "
+	killall mrd6
+        echo "Done."
+        ;;
+restart)
+        $0 stop
+        $0 start
+        ;;
+*)
+        echo "Usage: $0 {start | stop | restart}"
+        ;;
+esac
+exit 0
diff --git a/package/mrd6/ipkg/mrd6.control b/package/mrd6/ipkg/mrd6.control
new file mode 100644
index 000000000..89082b9f4
--- /dev/null
+++ b/package/mrd6/ipkg/mrd6.control
@@ -0,0 +1,6 @@
+Package: mrd6
+Architecture: mipsel
+Section: net
+Priority: optional
+Depends: kmod-ipv6
+Description: IPv6 multicast routing daemon
-- 
cgit v1.2.3