15 rcvar="ip6addrctl_enable"
16 start_cmd="ip6addrctl_start"
17 stop_cmd="ip6addrctl_stop"
18 extra_commands="status prefer_ipv6 prefer_ipv4"
19 status_cmd="ip6addrctl"
20 prefer_ipv6_cmd="ip6addrctl_prefer_ipv6"
21 prefer_ipv4_cmd="ip6addrctl_prefer_ipv4"
22 config_file="/etc/ip6addrctl.conf"
24 set_rcvar_obsolete ipv6_enable ipv6_activate_all_interfaces
25 set_rcvar_obsolete ipv6_prefer ip6addrctl_policy
27 ip6addrctl_prefer_ipv6()
29 afexists inet6 || return 0
31 ip6addrctl flush >/dev/null 2>&1
32 ip6addrctl add ::1/128 50 0
33 ip6addrctl add ::/0 40 1
34 ip6addrctl add ::ffff:0:0/96 35 4
35 ip6addrctl add 2002::/16 30 2
36 ip6addrctl add 2001::/32 5 5
37 ip6addrctl add fc00::/7 3 13
38 ip6addrctl add ::/96 1 3
39 ip6addrctl add fec0::/10 1 11
40 ip6addrctl add 3ffe::/16 1 12
41 checkyesno ip6addrctl_verbose && ip6addrctl
44 ip6addrctl_prefer_ipv4()
46 afexists inet6 || return 0
48 ip6addrctl flush >/dev/null 2>&1
49 ip6addrctl add ::1/128 50 0
50 ip6addrctl add ::/0 40 1
51 ip6addrctl add ::ffff:0:0/96 100 4
52 ip6addrctl add 2002::/16 30 2
53 ip6addrctl add 2001::/32 5 5
54 ip6addrctl add fc00::/7 3 13
55 ip6addrctl add ::/96 1 3
56 ip6addrctl add fec0::/10 1 11
57 ip6addrctl add 3ffe::/16 1 12
58 checkyesno ip6addrctl_verbose && ip6addrctl
63 afexists inet6 || return 0
65 # install the policy of the address selection algorithm.
66 case "${ip6addrctl_policy}" in
68 if [ -r "${config_file}" -a -s "${config_file}" ]; then
69 ip6addrctl flush >/dev/null 2>&1
70 ip6addrctl install "${config_file}"
71 checkyesno ip6addrctl_verbose && ip6addrctl
73 if checkyesno ipv6_activate_all_interfaces; then
74 ip6addrctl_prefer_ipv6
76 ip6addrctl_prefer_ipv4
81 ip6addrctl_prefer_ipv4
84 ip6addrctl_prefer_ipv6
86 [Yy][Ee][Ss]|[Tt][Rr][Uu][Ee]|[Oo][Nn]|1)
87 # Backward compatibility when ipv6_prefer=YES
88 ip6addrctl_prefer_ipv6
90 [Nn][Oo]|[Ff][Aa][Ll][Ss][Ee]|[Oo][Ff][Ff]|0)
91 # Backward compatibility when ipv6_prefer=NO
92 ip6addrctl_prefer_ipv4
95 ip6addrctl flush >/dev/null 2>&1
98 warn "\$ip6addrctl_policy is invalid: ${ip6addrctl_policy}. " \
99 " \"ipv4_prefer\" is used instead."
100 ip6addrctl_prefer_ipv4
107 afexists inet6 || return 0
109 ip6addrctl flush >/dev/null 2>&1