#!/bin/sh /etc/rc.common START=46 STOP=46 start_service() { local section="$1" . /lib/functions/network.sh network_get_physdev LAN lan || return 1 network_get_physdev WAN wan || return 1 config_get bridge "$section" bridge brctl addbr $bridge brctl addif $bridge $LAN brctl addif $bridge $WAN brctl setfd $bridge 0 ebtables -t broute -A BROUTING -i $WAN -p ! ipv6 -j DROP ifconfig $bridge up } stop_service() { local section="$1" . /lib/functions/network.sh network_get_physdev LAN lan || return 1 network_get_physdev WAN wan || return 1 config_get bridge "$section" bridge ifconfig $bridge down ebtables -t broute -F brctl delif $bridge $WAN brctl delif $bridge $LAN brctl delbr $bridge } start() { if ! [ -f /proc/net/if_inet6 ]; then echo "IPv6 not enabled, install kmod-ipv6"; exit 1 fi config_load "6bridge" config_foreach start_service 6bridge } stop() { config_load "6bridge" config_foreach stop_service 6bridge }