summaryrefslogtreecommitdiffstats
path: root/etc/rc.d/network_ipv6
diff options
context:
space:
mode:
Diffstat (limited to 'etc/rc.d/network_ipv6')
-rw-r--r--etc/rc.d/network_ipv629
1 files changed, 29 insertions, 0 deletions
diff --git a/etc/rc.d/network_ipv6 b/etc/rc.d/network_ipv6
index a46194f..aa8d6a2 100644
--- a/etc/rc.d/network_ipv6
+++ b/etc/rc.d/network_ipv6
@@ -161,6 +161,9 @@ network6_pass1() {
# setup static routes
network6_static_routes_setup
+ # setup faith
+ network6_faith_setup
+
case ${ipv6_gateway_enable} in
[Yy][Ee][Ss])
# ipv6_router
@@ -389,6 +392,32 @@ network6_static_routes_setup() {
esac
}
+network6_faith_setup() {
+ case ${ipv6_faith_prefix} in
+ [Nn][Oo] | '')
+ ;;
+ *)
+ sysctl -w net.inet6.ip6.keepfaith=1
+ ifconfig faith0 up
+ for prefix in ${ipv6_faith_prefix}; do
+ prefixlen=`expr "${prefix}" : ".*/\(.*\)"`
+ case ${prefixlen} in
+ '')
+ prefixlen=96
+ ;;
+ *)
+ prefix=`expr "${prefix}" : \
+ "\(.*\)/${prefixlen}"`
+ ;;
+ esac
+ route add -inet6 ${prefix} -prefixlen ${prefixlen} ::1
+ route change -inet6 ${prefix} -prefixlen ${prefixlen} \
+ -ifp faith0
+ done
+ ;;
+ esac
+}
+
network6_default_interface_setup() {
# Choose IPv6 default interface if it is not clearly specified.
case ${ipv6_default_interface} in
OpenPOWER on IntegriCloud