2f6ad4a7d3db54afd6ed839ad41f9856ca1cb68f
[openwrt/svn-archive/archive.git] / ipv6 / 6tunnel / files / 6bridge.init
1 #!/bin/sh /etc/rc.common
2 START=46
3 STOP=46
4
5 start_service() {
6 local section="$1"
7
8 include /lib/network
9 scan_interfaces
10 config_load /var/state/network
11
12 config_get LAN lan ifname
13 config_get WAN wan ifname
14 config_get bridge "$section" bridge
15
16 brctl addbr $bridge
17 brctl addif $bridge $lan
18 brctl addif $bridge $wan
19 brctl setfd $bridge 0
20 ebtables -t broute -A BROUTING -i $wan -p ! ipv6 -j DROP
21 ifconfig $bridge up
22 }
23
24 stop_service() {
25 local section="$1"
26
27 include /lib/network
28 scan_interfaces
29 config_load /var/state/network
30
31 config_get LAN lan ifname
32 config_get WAN wan ifname
33 config_get bridge "$section" bridge
34
35 ifconfig $bridge down
36 ebtables -t broute -F
37 brctl delif $bridge $wan
38 brctl delif $bridge $lan
39 brctl delbr $bridge
40 }
41 start() {
42 if ! [ -f /proc/net/if_inet6 ]; then
43 echo "IPv6 not enabled, install kmod-ipv6";
44 exit 1;
45 fi
46 config_load "6bridge"
47 config_foreach start_service 6bridge
48 }
49
50 stop () {
51 config_load "6bridge"
52 config_foreach stop_service 6bridge
53 }