components/quagga/Solaris/quaggaadm
author Brian Utterback <Brian.Utterback@Oracle.COM>
Mon, 18 Jul 2011 12:08:25 -0700
changeset 417 7c10b5cba79b
child 7738 822db2f94801
permissions -rw-r--r--
7066915 Move Quagga to Userland PSARC 2008/038 Move quagga files from /usr/sfw to /usr 6636788 quagga files should move from /usr/sfw 6610234 Pre-quagga start/stop scripts in /usr/sfw/sbin (bgpdstart,ospfdstart,etc..) should be removed 7064040 quagga smf start method no longer needs to worry about upgrade from SUNWzerbra 7027236 ospfd should allow the -a option to be set in smf 7066821 quaggaadm usage message gives program name as quaggaadm_usage instead of quaggaadm. 6933282 quagga manual pages need to be adjusted for the new IPS package names. 6615038 quaagadm: there is no usage info for the -e option 7002951 quagga pkg should deliver headers to allow users to build OSPF-API client programs
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
417
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
     1
#!/bin/ksh
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
     2
#
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
     3
# CDDL HEADER START
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
     4
#
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
     5
# The contents of this file are subject to the terms of the
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
     6
# Common Development and Distribution License (the "License").
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
     7
# You may not use this file except in compliance with the License.
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
     8
#
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
     9
# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
    10
# or http://www.opensolaris.org/os/licensing.
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
    11
# See the License for the specific language governing permissions
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
    12
# and limitations under the License.
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
    13
#
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
    14
# When distributing Covered Code, include this CDDL HEADER in each
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
    15
# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
    16
# If applicable, add the following below this CDDL HEADER, with the
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
    17
# fields enclosed by brackets "[]" replaced with your own identifying
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
    18
# information: Portions Copyright [yyyy] [name of copyright owner]
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
    19
#
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
    20
# CDDL HEADER END
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
    21
#
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
    22
# Copyright (c) 2008, 2011, Oracle and/or its affiliates. All rights reserved.
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
    23
#
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
    24
# ident	"@(#)quaggaadm	1.3	08/10/02 SMI"
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
    25
daemons="zebra ripd ripngd ospfd ospf6d bgpd isisd"
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
    26
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
    27
function quaggaadm_usage
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
    28
{
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
    29
	print - "Usage:\n" >&2
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
    30
	for H in ${daemons} ; do
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
    31
		print - "\t${1} [-e] ${H}\t\tConnect to ${H} daemon" >&2
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
    32
	done
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
    33
	print - "\nThe -e flag enables the named daemon to accept ${1} connections and" >&2
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
    34
	print - "must be used on the first use of ${1} to connect to a particular daemon." >&2
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
    35
}
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
    36
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
    37
if [ ${#} -gt 2 ]
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
    38
then
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
    39
	quaggaadm_usage ${0}
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
    40
	exit 1
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
    41
fi
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
    42
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
    43
function vty_enable
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
    44
{
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
    45
	restart=0;
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
    46
	
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
    47
	/usr/bin/svcprop -p routing/vty_address ${1} \
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
    48
		| grep -- '[0-9a-zA-Z]' > /dev/null || \
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
    49
		/usr/sbin/routeadm -m ${1} vty_address="127.0.0.1" && \
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
    50
			restart=1
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
    51
	/usr/bin/svcprop -p routing/vty_port ${1}| grep 0 > /dev/null && \
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
    52
		/usr/sbin/routeadm -m ${1} vty_port=${2}
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
    53
	if [ $restart = "1" ]; then
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
    54
		/usr/sbin/svcadm restart ${1}
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
    55
	fi			
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
    56
}			
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
    57
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
    58
ENABLE="no"
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
    59
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
    60
if [ ${#} -eq 2 ] ; then
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
    61
	DAEMON=${2}
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
    62
	if [ ${1} != "-e" ]; then
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
    63
		quaggaadm_usage ${0}
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
    64
		exit 1;
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
    65
	fi
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
    66
	ENABLE="yes"
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
    67
elif [ ${#} -eq 1 ] ; then
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
    68
	DAEMON=${1}
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
    69
fi
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
    70
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
    71
case ${DAEMON} in
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
    72
	zebra)    # telnet to zebra daemon
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
    73
		PORT=2601
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
    74
		SVC="zebra:quagga"
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
    75
	;;
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
    76
	rip|ripd) # telnet to ripd daemon
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
    77
		PORT=2602
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
    78
		SVC="rip:quagga"
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
    79
	;;
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
    80
	ripng|ripngd)    # telnet to ripngd daemon
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
    81
		PORT=2603
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
    82
		SVC="ripng:quagga"
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
    83
	;;
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
    84
	ospfd|ospf)    # telnet to ospfd daemon
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
    85
		PORT=2604
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
    86
		SVC="ospf:quagga"
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
    87
	;;
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
    88
	bgp|bgpd)    # telnet to bgpd daemon
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
    89
		PORT=2605
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
    90
		SVC="bgp:quagga"
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
    91
	;;
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
    92
	ospf6|ospf6d)    # telnet to ospf6d daemon
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
    93
		PORT=2606
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
    94
		SVC="ospf6:quagga"
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
    95
	;;
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
    96
	isis|isisd)	# telnet to isisd daemon
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
    97
		PORT=2608
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
    98
		SVC="isis:quagga"
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
    99
	;;
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   100
	*)
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   101
		# unknown daemon
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   102
		print - "Unrecognized command: ${1}..." >&2
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   103
		quaggaadm_usage ${0}
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   104
		exit 1
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   105
	;;
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   106
esac
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   107
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   108
if [ ${ENABLE} = "yes" ] ; then
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   109
	vty_enable ${SVC} ${PORT} || exit 1
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   110
fi
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   111
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   112
exec telnet 127.0.0.1 ${PORT}
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   113
7c10b5cba79b 7066915 Move Quagga to Userland
Brian Utterback <Brian.Utterback@Oracle.COM>
parents:
diff changeset
   114
exit 0