ba98d66bebdc729759bbd3ef3f4322f3d2e2d537
[packages.git] / ipv6 / 6scripts / 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 }