From 9feda69af9dd6682ef0f92a4f63c223f1174e18b Mon Sep 17 00:00:00 2001 From: Florian Fainelli 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 4f88b129d8..a7eb2ddaf5 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 8c67d82b18..0110cfc775 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 0000000000..cacebe2ac4 --- /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 0000000000..250b14fe91 --- /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 0000000000..84ce923a34 --- /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 0000000000..886723f15e --- /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 0000000000..89082b9f46 --- /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