a192e900f6d2b0e1a822e3252c0dfd795ed49d76amaguire#!/sbin/sh
a192e900f6d2b0e1a822e3252c0dfd795ed49d76amaguire#
a192e900f6d2b0e1a822e3252c0dfd795ed49d76amaguire# CDDL HEADER START
a192e900f6d2b0e1a822e3252c0dfd795ed49d76amaguire#
a192e900f6d2b0e1a822e3252c0dfd795ed49d76amaguire# The contents of this file are subject to the terms of the
a192e900f6d2b0e1a822e3252c0dfd795ed49d76amaguire# Common Development and Distribution License (the "License").
a192e900f6d2b0e1a822e3252c0dfd795ed49d76amaguire# You may not use this file except in compliance with the License.
a192e900f6d2b0e1a822e3252c0dfd795ed49d76amaguire#
a192e900f6d2b0e1a822e3252c0dfd795ed49d76amaguire# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
a192e900f6d2b0e1a822e3252c0dfd795ed49d76amaguire# or http://www.opensolaris.org/os/licensing.
a192e900f6d2b0e1a822e3252c0dfd795ed49d76amaguire# See the License for the specific language governing permissions
a192e900f6d2b0e1a822e3252c0dfd795ed49d76amaguire# and limitations under the License.
a192e900f6d2b0e1a822e3252c0dfd795ed49d76amaguire#
a192e900f6d2b0e1a822e3252c0dfd795ed49d76amaguire# When distributing Covered Code, include this CDDL HEADER in each
a192e900f6d2b0e1a822e3252c0dfd795ed49d76amaguire# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
a192e900f6d2b0e1a822e3252c0dfd795ed49d76amaguire# If applicable, add the following below this CDDL HEADER, with the
a192e900f6d2b0e1a822e3252c0dfd795ed49d76amaguire# fields enclosed by brackets "[]" replaced with your own identifying
a192e900f6d2b0e1a822e3252c0dfd795ed49d76amaguire# information: Portions Copyright [yyyy] [name of copyright owner]
a192e900f6d2b0e1a822e3252c0dfd795ed49d76amaguire#
a192e900f6d2b0e1a822e3252c0dfd795ed49d76amaguire# CDDL HEADER END
a192e900f6d2b0e1a822e3252c0dfd795ed49d76amaguire#
a192e900f6d2b0e1a822e3252c0dfd795ed49d76amaguire#
6e91bba0d6c6bdabbba62cefae583715a4a58e2aGirish Moodalbail# Copyright 2010 Sun Microsystems, Inc. All rights reserved.
a192e900f6d2b0e1a822e3252c0dfd795ed49d76amaguire# Use is subject to license terms.
a192e900f6d2b0e1a822e3252c0dfd795ed49d76amaguire#
a192e900f6d2b0e1a822e3252c0dfd795ed49d76amaguire
a192e900f6d2b0e1a822e3252c0dfd795ed49d76amaguire# This script is the shared method script for the ipv4-routing, ipv6-routing,
a192e900f6d2b0e1a822e3252c0dfd795ed49d76amaguire# ipv4-forwarding and ipv6-forwarding services.
a192e900f6d2b0e1a822e3252c0dfd795ed49d76amaguire
a192e900f6d2b0e1a822e3252c0dfd795ed49d76amaguire. /lib/svc/share/smf_include.sh
a192e900f6d2b0e1a822e3252c0dfd795ed49d76amaguire
a192e900f6d2b0e1a822e3252c0dfd795ed49d76amaguireusage() {
a192e900f6d2b0e1a822e3252c0dfd795ed49d76amaguire echo "Usage: $0 { start | stop | refresh } { ipv4 | ipv6 }"
a192e900f6d2b0e1a822e3252c0dfd795ed49d76amaguire}
a192e900f6d2b0e1a822e3252c0dfd795ed49d76amaguire
a192e900f6d2b0e1a822e3252c0dfd795ed49d76amaguirenumv6ifs=`/usr/sbin/ifconfig -au6 | /usr/bin/grep -c inet6`
a192e900f6d2b0e1a822e3252c0dfd795ed49d76amaguire
a192e900f6d2b0e1a822e3252c0dfd795ed49d76amaguiremethod="$1"
a192e900f6d2b0e1a822e3252c0dfd795ed49d76amaguireproto="$2"
a192e900f6d2b0e1a822e3252c0dfd795ed49d76amaguire
a192e900f6d2b0e1a822e3252c0dfd795ed49d76amaguireif [ -z "$proto" ]; then
a192e900f6d2b0e1a822e3252c0dfd795ed49d76amaguire usage
a192e900f6d2b0e1a822e3252c0dfd795ed49d76amaguire exit $SMF_ERROR_FATAL
a192e900f6d2b0e1a822e3252c0dfd795ed49d76amaguirefi
a192e900f6d2b0e1a822e3252c0dfd795ed49d76amaguire
a192e900f6d2b0e1a822e3252c0dfd795ed49d76amaguirecase "$1" in
a192e900f6d2b0e1a822e3252c0dfd795ed49d76amaguire'start' | 'refresh' )
f4b3ec61df05330d25f55a36b975b4d7519fdeb1dh smf_configure_ip || exit $SMF_EXIT_OK
a192e900f6d2b0e1a822e3252c0dfd795ed49d76amaguire #
a192e900f6d2b0e1a822e3252c0dfd795ed49d76amaguire # Start ip forwarding.
a192e900f6d2b0e1a822e3252c0dfd795ed49d76amaguire #
a192e900f6d2b0e1a822e3252c0dfd795ed49d76amaguire if [ "$proto" = "ipv6" -a "$numv6ifs" = 0 ]; then
a192e900f6d2b0e1a822e3252c0dfd795ed49d76amaguire echo "Error: no IPv6 interface configured"
a192e900f6d2b0e1a822e3252c0dfd795ed49d76amaguire exit $SMF_EXIT_ERR_CONFIG
a192e900f6d2b0e1a822e3252c0dfd795ed49d76amaguire fi
6e91bba0d6c6bdabbba62cefae583715a4a58e2aGirish Moodalbail
6e91bba0d6c6bdabbba62cefae583715a4a58e2aGirish Moodalbail /usr/sbin/ipadm set-prop -p forwarding=on $proto
6e91bba0d6c6bdabbba62cefae583715a4a58e2aGirish Moodalbail [ "$proto" = "ipv6" ] && /usr/sbin/ipadm set-prop \
6e91bba0d6c6bdabbba62cefae583715a4a58e2aGirish Moodalbail -p ip6_send_redirects=1 ip
a192e900f6d2b0e1a822e3252c0dfd795ed49d76amaguire ;;
a192e900f6d2b0e1a822e3252c0dfd795ed49d76amaguire'stop')
6e91bba0d6c6bdabbba62cefae583715a4a58e2aGirish Moodalbail /usr/sbin/ipadm set-prop -p forwarding=off $proto
6e91bba0d6c6bdabbba62cefae583715a4a58e2aGirish Moodalbail [ "$proto" = "ipv6" ] && /usr/sbin/ipadm set-prop \
6e91bba0d6c6bdabbba62cefae583715a4a58e2aGirish Moodalbail -p ip6_send_redirects=0 ip
a192e900f6d2b0e1a822e3252c0dfd795ed49d76amaguire ;;
a192e900f6d2b0e1a822e3252c0dfd795ed49d76amaguire*)
a192e900f6d2b0e1a822e3252c0dfd795ed49d76amaguire usage
a192e900f6d2b0e1a822e3252c0dfd795ed49d76amaguire exit $SMF_ERROR_FATAL
a192e900f6d2b0e1a822e3252c0dfd795ed49d76amaguire ;;
a192e900f6d2b0e1a822e3252c0dfd795ed49d76amaguireesac
a192e900f6d2b0e1a822e3252c0dfd795ed49d76amaguire
a192e900f6d2b0e1a822e3252c0dfd795ed49d76amaguireexit "$SMF_EXIT_OK"