ip6addrctl revision 1.3
11.1Schristos#!/bin/sh 21.1Schristos# 31.1Schristos# $FreeBSD: head/etc/rc.d/ip6addrctl 270836 2014-08-30 07:08:10Z hrs $ 41.1Schristos# 51.1Schristos 61.1Schristos# PROVIDE: ip6addrctl 71.1Schristos# REQUIRE: root bootconf mountcritlocal tty 81.1Schristos 91.3Snakayama$_rc_subr_loaded . /etc/rc.subr 101.1Schristos 111.1Schristosname="ip6addrctl" 121.2Schristosrcvar="ip6addrctl" 131.1Schristosstart_cmd="ip6addrctl_start" 141.1Schristosstop_cmd="ip6addrctl_stop" 151.1Schristosextra_commands="status prefer_ipv6 prefer_ipv4" 161.1Schristosstatus_cmd="ip6addrctl" 171.1Schristosprefer_ipv6_cmd="ip6addrctl_prefer_ipv6" 181.1Schristosprefer_ipv4_cmd="ip6addrctl_prefer_ipv4" 191.1Schristosconfig_file="/etc/ip6addrctl.conf" 201.1Schristos 211.1SchristosIP6ADDRCTL_CMD="/usr/sbin/ip6addrctl" 221.1Schristos 231.1Schristosip6addrctl_prefer_ipv6() 241.1Schristos{ 251.1Schristos ${IP6ADDRCTL_CMD} flush >/dev/null 2>&1 261.1Schristos cat <<EOT | ${IP6ADDRCTL_CMD} install /dev/stdin 271.1Schristos ::1/128 50 0 281.1Schristos ::/0 40 1 291.1Schristos ::ffff:0:0/96 35 4 301.1Schristos 2002::/16 30 2 311.1Schristos 2001::/32 5 5 321.1Schristos fc00::/7 3 13 331.1Schristos ::/96 1 3 341.1Schristos fec0::/10 1 11 351.1Schristos 3ffe::/16 1 12 361.1SchristosEOT 371.1Schristos} 381.1Schristos 391.1Schristosip6addrctl_prefer_ipv4() 401.1Schristos{ 411.1Schristos ${IP6ADDRCTL_CMD} flush >/dev/null 2>&1 421.1Schristos cat <<EOT | ${IP6ADDRCTL_CMD} install /dev/stdin 431.1Schristos ::1/128 50 0 441.1Schristos ::/0 40 1 451.1Schristos ::ffff:0:0/96 100 4 461.1Schristos 2002::/16 30 2 471.1Schristos 2001::/32 5 5 481.1Schristos fc00::/7 3 13 491.1Schristos ::/96 1 3 501.1Schristos fec0::/10 1 11 511.1Schristos 3ffe::/16 1 12 521.1SchristosEOT 531.1Schristos} 541.1Schristos 551.1Schristosip6addrctl_start() 561.1Schristos{ 571.1Schristos # install the policy of the address selection algorithm. 581.1Schristos case "${ip6addrctl_policy}" in 591.1Schristos [Aa][Uu][Tt][Oo]) 601.1Schristos if [ -r "${config_file}" -a -s "${config_file}" ]; then 611.1Schristos ${IP6ADDRCTL_CMD} flush >/dev/null 2>&1 621.1Schristos ${IP6ADDRCTL_CMD} install "${config_file}" 631.1Schristos else 641.2Schristos ip6addrctl_prefer_ipv6 651.1Schristos fi 661.1Schristos ;; 671.1Schristos ipv4_prefer) 681.1Schristos ip6addrctl_prefer_ipv4 691.1Schristos ;; 701.1Schristos ipv6_prefer) 711.1Schristos ip6addrctl_prefer_ipv6 721.1Schristos ;; 731.1Schristos *) 741.1Schristos warn "\$ip6addrctl_policy is invalid: ${ip6addrctl_policy}. " \ 751.1Schristos " \"ipv4_prefer\" is used instead." 761.1Schristos ip6addrctl_prefer_ipv4 771.1Schristos ;; 781.1Schristos esac 791.1Schristos 801.1Schristos if checkyesno ip6addrctl_verbose; then 811.1Schristos echo 'Address selection policy table for IPv4 and IPv6:' 821.1Schristos ${IP6ADDRCTL_CMD} 831.1Schristos fi 841.1Schristos} 851.1Schristos 861.1Schristosip6addrctl_stop() 871.1Schristos{ 881.1Schristos ip6addrctl flush >/dev/null 2>&1 891.1Schristos} 901.1Schristos 911.1Schristosload_rc_config $name 921.1Schristosrun_rc_command "$1" 93