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