xref: /onnv-gate/usr/src/cmd/cmd-inet/usr.sbin/in.routed/svc-route (revision 3448:aaf16568054b)
13048Samaguire#!/sbin/sh
23048Samaguire#
33048Samaguire# CDDL HEADER START
43048Samaguire#
53048Samaguire# The contents of this file are subject to the terms of the
63048Samaguire# Common Development and Distribution License (the "License").
73048Samaguire# You may not use this file except in compliance with the License.
83048Samaguire#
93048Samaguire# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
103048Samaguire# or http://www.opensolaris.org/os/licensing.
113048Samaguire# See the License for the specific language governing permissions
123048Samaguire# and limitations under the License.
133048Samaguire#
143048Samaguire# When distributing Covered Code, include this CDDL HEADER in each
153048Samaguire# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
163048Samaguire# If applicable, add the following below this CDDL HEADER, with the
173048Samaguire# fields enclosed by brackets "[]" replaced with your own identifying
183048Samaguire# information: Portions Copyright [yyyy] [name of copyright owner]
193048Samaguire#
203048Samaguire# CDDL HEADER END
213048Samaguire#
223048Samaguire#
23*3448Sdh155122# Copyright 2007 Sun Microsystems, Inc.  All rights reserved.
243048Samaguire# Use is subject to license terms.
253048Samaguire#
263048Samaguire# ident	"%Z%%M%	%I%	%E% SMI"
273048Samaguire
283048Samaguire. /lib/svc/share/smf_include.sh
293048Samaguire. /lib/svc/share/routing_include.sh
303048Samaguire
31*3448Sdh155122smf_configure_ip || exit $SMF_EXIT_OK
323048Samaguire
333048Samaguiredaemon_args=`get_daemon_args $SMF_FMRI`
343048Samaguireoptions="AdghmnqsStvVzT:F:P:"
353048Samaguire
363048Samaguire#
373048Samaguire# Handle upgrade - routing/daemon-args property must be mapped to properties
383048Samaguire# in routeadm property group.  Note that the SMF-incompatible -t option is not
393048Samaguire# supported, since it requires that in.routed run in the foreground.
403048Samaguire#
413048Samaguireif [ -n "$daemon_args" ]; then
423048Samaguire	set_daemon_boolean_property "$SMF_FMRI" "$daemon_args" \
433048Samaguire	    "$options" "A" ignore_auth false true
443048Samaguire	set_daemon_ordered_multivalue_property "$SMF_FMRI" "$daemon_args" \
453048Samaguire	    "$options" "F" minimize_routes
463048Samaguire	set_daemon_boolean_property "$SMF_FMRI" "$daemon_args" \
473048Samaguire	    "$options" "g" offer_default_route true false
483048Samaguire	set_daemon_boolean_property "$SMF_FMRI" "$daemon_args" \
493048Samaguire	    "$options" "h" advertise_host_routes false true
503048Samaguire	set_daemon_boolean_property "$SMF_FMRI" "$daemon_args" \
513048Samaguire	    "$options" "m" advertise_host_routes_primary true false
523048Samaguire	set_daemon_boolean_property "$SMF_FMRI" "$daemon_args" \
533048Samaguire	    "$options" "n" install_routes false true
543048Samaguire	set_daemon_ordered_multivalue_property "$SMF_FMRI" "$daemon_args" \
553048Samaguire	    "$options" "P" parameters
563048Samaguire	set_daemon_boolean_property "$SMF_FMRI" "$daemon_args" \
573048Samaguire	    "$options" "q" supply_routes false true
583048Samaguire	set_daemon_boolean_property "$SMF_FMRI" "$daemon_args" \
593048Samaguire	    "$options" "s" supply_routes true
603048Samaguire	set_daemon_boolean_property "$SMF_FMRI" "$daemon_args" \
613048Samaguire	    "$options" "S" default_routes_only true false
623048Samaguire	set_daemon_value_property "$SMF_FMRI" "$daemon_args" \
633048Samaguire	    "$options" "T" log_file
643048Samaguire	set_daemon_boolean_property "$SMF_FMRI" "$daemon_args" \
653048Samaguire	    "$options" "v" debug true false
663048Samaguire	set_daemon_boolean_property "$SMF_FMRI" "$daemon_args" \
673048Samaguire	    "$options" "z" debug true
683048Samaguire	clear_daemon_args $SMF_FMRI
693048Samaguirefi
703048Samaguire
713048Samaguire#
723048Samaguire# Assemble arguments to daemon from properties
733048Samaguire#
743048Samaguireargs="`get_daemon_option_from_boolean_property $SMF_FMRI ignore_auth \
753048Samaguire	A false`"
763048Samaguireargs="$args`get_daemon_option_from_boolean_property $SMF_FMRI \
773048Samaguire	offer_default_route g true`"
783048Samaguireargs="$args`get_daemon_option_from_boolean_property $SMF_FMRI \
793048Samaguire	advertise_host_routes h false`"
803048Samaguireargs="$args`get_daemon_option_from_boolean_property $SMF_FMRI \
813048Samaguire	advertise_host_routes_primary m true`"
823048Samaguireargs="$args`get_daemon_option_from_boolean_property $SMF_FMRI \
833048Samaguire	install_routes n false`"
843048Samaguireargs="$args`get_daemon_option_from_boolean_property $SMF_FMRI \
853048Samaguire	supply_routes q false`"
863048Samaguire# We only use -s option when there are multiple network interfaces.
873048Samaguirenumv4ifs=`/usr/sbin/ifconfig -a4u | \
883048Samaguire	/usr/bin/nawk '($1 == "inet" && $2 != "127.0.0.1") { print $2 }' | \
893048Samaguire	/usr/bin/wc -l`
903048Samaguireif [ "$numv4ifs" -gt 1 ]; then
913048Samaguire	args="$args`get_daemon_option_from_boolean_property $SMF_FMRI \
923048Samaguire		supply_routes s true`"
933048Samaguirefi
943048Samaguireargs="$args`get_daemon_option_from_boolean_property $SMF_FMRI \
953048Samaguire	default_routes_only S true`"
963048Samaguireargs="$args`get_daemon_option_from_boolean_property $SMF_FMRI \
973048Samaguire	debug z true`"
983048Samaguireif [ -n "$args" ]; then
993048Samaguire	args="-${args}"
1003048Samaguirefi
1013048Samaguireargs="$args `get_daemon_ordered_multivalue_option_from_property $SMF_FMRI \
1023048Samaguire	minimize_routes F`"
1033048Samaguireargs="$args `get_daemon_ordered_multivalue_option_from_property \
1043048Samaguire	$SMF_FMRI parameters P`"
1053048Samaguireargs="$args `get_daemon_option_from_property $SMF_FMRI \
1063048Samaguire	log_file T`"
1073048Samaguire
1083048Samaguire/usr/sbin/in.routed $args
1093048Samaguire
1103048Samaguire[ "$?" = 0 ] || exit $SMF_EXIT_ERR_FATAL
1113048Samaguire
1123048Samaguireexit "$SMF_EXIT_OK"
113