components/ptp/Solaris/ptp.sh
author Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
Fri, 05 Jun 2015 17:26:12 -0700
branchs11-update
changeset 4441 8e251f3e0ce3
parent 2987 01d2e6a3aae8
permissions -rw-r--r--
21138378 Add group/feature packages to Userland
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
2913
34273351da77 PSARC/2013/284 PTP (Precision Time Protocol) 2.2.0
Prakash Jalan <Prakash.Jalan@oracle.com>
parents:
diff changeset
     1
#!/sbin/sh
34273351da77 PSARC/2013/284 PTP (Precision Time Protocol) 2.2.0
Prakash Jalan <Prakash.Jalan@oracle.com>
parents:
diff changeset
     2
#
34273351da77 PSARC/2013/284 PTP (Precision Time Protocol) 2.2.0
Prakash Jalan <Prakash.Jalan@oracle.com>
parents:
diff changeset
     3
# CDDL HEADER START
34273351da77 PSARC/2013/284 PTP (Precision Time Protocol) 2.2.0
Prakash Jalan <Prakash.Jalan@oracle.com>
parents:
diff changeset
     4
#
34273351da77 PSARC/2013/284 PTP (Precision Time Protocol) 2.2.0
Prakash Jalan <Prakash.Jalan@oracle.com>
parents:
diff changeset
     5
# The contents of this file are subject to the terms of the
34273351da77 PSARC/2013/284 PTP (Precision Time Protocol) 2.2.0
Prakash Jalan <Prakash.Jalan@oracle.com>
parents:
diff changeset
     6
# Common Development and Distribution License (the "License").
34273351da77 PSARC/2013/284 PTP (Precision Time Protocol) 2.2.0
Prakash Jalan <Prakash.Jalan@oracle.com>
parents:
diff changeset
     7
# You may not use this file except in compliance with the License.
34273351da77 PSARC/2013/284 PTP (Precision Time Protocol) 2.2.0
Prakash Jalan <Prakash.Jalan@oracle.com>
parents:
diff changeset
     8
#
34273351da77 PSARC/2013/284 PTP (Precision Time Protocol) 2.2.0
Prakash Jalan <Prakash.Jalan@oracle.com>
parents:
diff changeset
     9
# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
34273351da77 PSARC/2013/284 PTP (Precision Time Protocol) 2.2.0
Prakash Jalan <Prakash.Jalan@oracle.com>
parents:
diff changeset
    10
# or http://www.opensolaris.org/os/licensing.
34273351da77 PSARC/2013/284 PTP (Precision Time Protocol) 2.2.0
Prakash Jalan <Prakash.Jalan@oracle.com>
parents:
diff changeset
    11
# See the License for the specific language governing permissions
34273351da77 PSARC/2013/284 PTP (Precision Time Protocol) 2.2.0
Prakash Jalan <Prakash.Jalan@oracle.com>
parents:
diff changeset
    12
# and limitations under the License.
34273351da77 PSARC/2013/284 PTP (Precision Time Protocol) 2.2.0
Prakash Jalan <Prakash.Jalan@oracle.com>
parents:
diff changeset
    13
#
34273351da77 PSARC/2013/284 PTP (Precision Time Protocol) 2.2.0
Prakash Jalan <Prakash.Jalan@oracle.com>
parents:
diff changeset
    14
# When distributing Covered Code, include this CDDL HEADER in each
34273351da77 PSARC/2013/284 PTP (Precision Time Protocol) 2.2.0
Prakash Jalan <Prakash.Jalan@oracle.com>
parents:
diff changeset
    15
# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
34273351da77 PSARC/2013/284 PTP (Precision Time Protocol) 2.2.0
Prakash Jalan <Prakash.Jalan@oracle.com>
parents:
diff changeset
    16
# If applicable, add the following below this CDDL HEADER, with the
34273351da77 PSARC/2013/284 PTP (Precision Time Protocol) 2.2.0
Prakash Jalan <Prakash.Jalan@oracle.com>
parents:
diff changeset
    17
# fields enclosed by brackets "[]" replaced with your own identifying
34273351da77 PSARC/2013/284 PTP (Precision Time Protocol) 2.2.0
Prakash Jalan <Prakash.Jalan@oracle.com>
parents:
diff changeset
    18
# information: Portions Copyright [yyyy] [name of copyright owner]
34273351da77 PSARC/2013/284 PTP (Precision Time Protocol) 2.2.0
Prakash Jalan <Prakash.Jalan@oracle.com>
parents:
diff changeset
    19
#
34273351da77 PSARC/2013/284 PTP (Precision Time Protocol) 2.2.0
Prakash Jalan <Prakash.Jalan@oracle.com>
parents:
diff changeset
    20
# CDDL HEADER END
34273351da77 PSARC/2013/284 PTP (Precision Time Protocol) 2.2.0
Prakash Jalan <Prakash.Jalan@oracle.com>
parents:
diff changeset
    21
#
34273351da77 PSARC/2013/284 PTP (Precision Time Protocol) 2.2.0
Prakash Jalan <Prakash.Jalan@oracle.com>
parents:
diff changeset
    22
#
34273351da77 PSARC/2013/284 PTP (Precision Time Protocol) 2.2.0
Prakash Jalan <Prakash.Jalan@oracle.com>
parents:
diff changeset
    23
# Copyright (c) 2014, Oracle and/or its affiliates. All rights reserved.
34273351da77 PSARC/2013/284 PTP (Precision Time Protocol) 2.2.0
Prakash Jalan <Prakash.Jalan@oracle.com>
parents:
diff changeset
    24
#
34273351da77 PSARC/2013/284 PTP (Precision Time Protocol) 2.2.0
Prakash Jalan <Prakash.Jalan@oracle.com>
parents:
diff changeset
    25
34273351da77 PSARC/2013/284 PTP (Precision Time Protocol) 2.2.0
Prakash Jalan <Prakash.Jalan@oracle.com>
parents:
diff changeset
    26
# Standard prolog
34273351da77 PSARC/2013/284 PTP (Precision Time Protocol) 2.2.0
Prakash Jalan <Prakash.Jalan@oracle.com>
parents:
diff changeset
    27
#
34273351da77 PSARC/2013/284 PTP (Precision Time Protocol) 2.2.0
Prakash Jalan <Prakash.Jalan@oracle.com>
parents:
diff changeset
    28
. /lib/svc/share/smf_include.sh
34273351da77 PSARC/2013/284 PTP (Precision Time Protocol) 2.2.0
Prakash Jalan <Prakash.Jalan@oracle.com>
parents:
diff changeset
    29
. /lib/svc/share/net_include.sh
34273351da77 PSARC/2013/284 PTP (Precision Time Protocol) 2.2.0
Prakash Jalan <Prakash.Jalan@oracle.com>
parents:
diff changeset
    30
34273351da77 PSARC/2013/284 PTP (Precision Time Protocol) 2.2.0
Prakash Jalan <Prakash.Jalan@oracle.com>
parents:
diff changeset
    31
EXECFILE="/usr/lib/inet/ptpd"
34273351da77 PSARC/2013/284 PTP (Precision Time Protocol) 2.2.0
Prakash Jalan <Prakash.Jalan@oracle.com>
parents:
diff changeset
    32
34273351da77 PSARC/2013/284 PTP (Precision Time Protocol) 2.2.0
Prakash Jalan <Prakash.Jalan@oracle.com>
parents:
diff changeset
    33
if [ -z $SMF_FMRI ]; then
34273351da77 PSARC/2013/284 PTP (Precision Time Protocol) 2.2.0
Prakash Jalan <Prakash.Jalan@oracle.com>
parents:
diff changeset
    34
        echo "SMF framework variables are not initialized."
34273351da77 PSARC/2013/284 PTP (Precision Time Protocol) 2.2.0
Prakash Jalan <Prakash.Jalan@oracle.com>
parents:
diff changeset
    35
        exit $SMF_EXIT_ERR_NOSMF
34273351da77 PSARC/2013/284 PTP (Precision Time Protocol) 2.2.0
Prakash Jalan <Prakash.Jalan@oracle.com>
parents:
diff changeset
    36
fi
34273351da77 PSARC/2013/284 PTP (Precision Time Protocol) 2.2.0
Prakash Jalan <Prakash.Jalan@oracle.com>
parents:
diff changeset
    37
34273351da77 PSARC/2013/284 PTP (Precision Time Protocol) 2.2.0
Prakash Jalan <Prakash.Jalan@oracle.com>
parents:
diff changeset
    38
#
34273351da77 PSARC/2013/284 PTP (Precision Time Protocol) 2.2.0
Prakash Jalan <Prakash.Jalan@oracle.com>
parents:
diff changeset
    39
# get_prop fmri propname
34273351da77 PSARC/2013/284 PTP (Precision Time Protocol) 2.2.0
Prakash Jalan <Prakash.Jalan@oracle.com>
parents:
diff changeset
    40
#
34273351da77 PSARC/2013/284 PTP (Precision Time Protocol) 2.2.0
Prakash Jalan <Prakash.Jalan@oracle.com>
parents:
diff changeset
    41
get_prop () {
34273351da77 PSARC/2013/284 PTP (Precision Time Protocol) 2.2.0
Prakash Jalan <Prakash.Jalan@oracle.com>
parents:
diff changeset
    42
	VALUE="`$SVCPROP -cp config/$1 $SMF_FMRI 2>/dev/null`"
34273351da77 PSARC/2013/284 PTP (Precision Time Protocol) 2.2.0
Prakash Jalan <Prakash.Jalan@oracle.com>
parents:
diff changeset
    43
	# Empty astring_list values show up as "" - do not return this.
34273351da77 PSARC/2013/284 PTP (Precision Time Protocol) 2.2.0
Prakash Jalan <Prakash.Jalan@oracle.com>
parents:
diff changeset
    44
	if [ "$VALUE" != "\"\"" ]; then
34273351da77 PSARC/2013/284 PTP (Precision Time Protocol) 2.2.0
Prakash Jalan <Prakash.Jalan@oracle.com>
parents:
diff changeset
    45
		echo $VALUE
34273351da77 PSARC/2013/284 PTP (Precision Time Protocol) 2.2.0
Prakash Jalan <Prakash.Jalan@oracle.com>
parents:
diff changeset
    46
	fi
34273351da77 PSARC/2013/284 PTP (Precision Time Protocol) 2.2.0
Prakash Jalan <Prakash.Jalan@oracle.com>
parents:
diff changeset
    47
}
34273351da77 PSARC/2013/284 PTP (Precision Time Protocol) 2.2.0
Prakash Jalan <Prakash.Jalan@oracle.com>
parents:
diff changeset
    48
34273351da77 PSARC/2013/284 PTP (Precision Time Protocol) 2.2.0
Prakash Jalan <Prakash.Jalan@oracle.com>
parents:
diff changeset
    49
errlog () {
34273351da77 PSARC/2013/284 PTP (Precision Time Protocol) 2.2.0
Prakash Jalan <Prakash.Jalan@oracle.com>
parents:
diff changeset
    50
	echo $1 >&2
34273351da77 PSARC/2013/284 PTP (Precision Time Protocol) 2.2.0
Prakash Jalan <Prakash.Jalan@oracle.com>
parents:
diff changeset
    51
}
34273351da77 PSARC/2013/284 PTP (Precision Time Protocol) 2.2.0
Prakash Jalan <Prakash.Jalan@oracle.com>
parents:
diff changeset
    52
34273351da77 PSARC/2013/284 PTP (Precision Time Protocol) 2.2.0
Prakash Jalan <Prakash.Jalan@oracle.com>
parents:
diff changeset
    53
#Do not refresh IGMP group
34273351da77 PSARC/2013/284 PTP (Precision Time Protocol) 2.2.0
Prakash Jalan <Prakash.Jalan@oracle.com>
parents:
diff changeset
    54
CMD_LINE_ARGS=" -j"
34273351da77 PSARC/2013/284 PTP (Precision Time Protocol) 2.2.0
Prakash Jalan <Prakash.Jalan@oracle.com>
parents:
diff changeset
    55
34273351da77 PSARC/2013/284 PTP (Precision Time Protocol) 2.2.0
Prakash Jalan <Prakash.Jalan@oracle.com>
parents:
diff changeset
    56
LISTEN_IFNAME="`get_prop listen_ifname`"
34273351da77 PSARC/2013/284 PTP (Precision Time Protocol) 2.2.0
Prakash Jalan <Prakash.Jalan@oracle.com>
parents:
diff changeset
    57
if [  -n "$LISTEN_IFNAME" ]; then
34273351da77 PSARC/2013/284 PTP (Precision Time Protocol) 2.2.0
Prakash Jalan <Prakash.Jalan@oracle.com>
parents:
diff changeset
    58
		CMD_LINE_ARGS="$CMD_LINE_ARGS -b $LISTEN_IFNAME"
34273351da77 PSARC/2013/284 PTP (Precision Time Protocol) 2.2.0
Prakash Jalan <Prakash.Jalan@oracle.com>
parents:
diff changeset
    59
fi
34273351da77 PSARC/2013/284 PTP (Precision Time Protocol) 2.2.0
Prakash Jalan <Prakash.Jalan@oracle.com>
parents:
diff changeset
    60
34273351da77 PSARC/2013/284 PTP (Precision Time Protocol) 2.2.0
Prakash Jalan <Prakash.Jalan@oracle.com>
parents:
diff changeset
    61
NODE_TYPE="`get_prop node_type`"
34273351da77 PSARC/2013/284 PTP (Precision Time Protocol) 2.2.0
Prakash Jalan <Prakash.Jalan@oracle.com>
parents:
diff changeset
    62
if [ -n "$NODE_TYPE" ]; then
34273351da77 PSARC/2013/284 PTP (Precision Time Protocol) 2.2.0
Prakash Jalan <Prakash.Jalan@oracle.com>
parents:
diff changeset
    63
	if [ "$NODE_TYPE" = "master" ]; then
34273351da77 PSARC/2013/284 PTP (Precision Time Protocol) 2.2.0
Prakash Jalan <Prakash.Jalan@oracle.com>
parents:
diff changeset
    64
		CMD_LINE_ARGS="$CMD_LINE_ARGS -W"
34273351da77 PSARC/2013/284 PTP (Precision Time Protocol) 2.2.0
Prakash Jalan <Prakash.Jalan@oracle.com>
parents:
diff changeset
    65
	elif [ "$NODE_TYPE" = "slave" ]; then
34273351da77 PSARC/2013/284 PTP (Precision Time Protocol) 2.2.0
Prakash Jalan <Prakash.Jalan@oracle.com>
parents:
diff changeset
    66
		CMD_LINE_ARGS="$CMD_LINE_ARGS -g"
34273351da77 PSARC/2013/284 PTP (Precision Time Protocol) 2.2.0
Prakash Jalan <Prakash.Jalan@oracle.com>
parents:
diff changeset
    67
	else
34273351da77 PSARC/2013/284 PTP (Precision Time Protocol) 2.2.0
Prakash Jalan <Prakash.Jalan@oracle.com>
parents:
diff changeset
    68
		errlog "node_type needs to be either slave or master. See ptp (1M). Exiting."
34273351da77 PSARC/2013/284 PTP (Precision Time Protocol) 2.2.0
Prakash Jalan <Prakash.Jalan@oracle.com>
parents:
diff changeset
    69
		exit $SMF_EXIT_ERR_CONFIG
34273351da77 PSARC/2013/284 PTP (Precision Time Protocol) 2.2.0
Prakash Jalan <Prakash.Jalan@oracle.com>
parents:
diff changeset
    70
	fi
34273351da77 PSARC/2013/284 PTP (Precision Time Protocol) 2.2.0
Prakash Jalan <Prakash.Jalan@oracle.com>
parents:
diff changeset
    71
else
34273351da77 PSARC/2013/284 PTP (Precision Time Protocol) 2.2.0
Prakash Jalan <Prakash.Jalan@oracle.com>
parents:
diff changeset
    72
	CMD_LINE_ARGS="$CMD_LINE_ARGS -g"
34273351da77 PSARC/2013/284 PTP (Precision Time Protocol) 2.2.0
Prakash Jalan <Prakash.Jalan@oracle.com>
parents:
diff changeset
    73
fi
34273351da77 PSARC/2013/284 PTP (Precision Time Protocol) 2.2.0
Prakash Jalan <Prakash.Jalan@oracle.com>
parents:
diff changeset
    74
34273351da77 PSARC/2013/284 PTP (Precision Time Protocol) 2.2.0
Prakash Jalan <Prakash.Jalan@oracle.com>
parents:
diff changeset
    75
USE_HW="`get_prop use_hw`"
34273351da77 PSARC/2013/284 PTP (Precision Time Protocol) 2.2.0
Prakash Jalan <Prakash.Jalan@oracle.com>
parents:
diff changeset
    76
if [ "$USE_HW" = "true" ];then
34273351da77 PSARC/2013/284 PTP (Precision Time Protocol) 2.2.0
Prakash Jalan <Prakash.Jalan@oracle.com>
parents:
diff changeset
    77
	CMD_LINE_ARGS="$CMD_LINE_ARGS -K"
34273351da77 PSARC/2013/284 PTP (Precision Time Protocol) 2.2.0
Prakash Jalan <Prakash.Jalan@oracle.com>
parents:
diff changeset
    78
fi
34273351da77 PSARC/2013/284 PTP (Precision Time Protocol) 2.2.0
Prakash Jalan <Prakash.Jalan@oracle.com>
parents:
diff changeset
    79
34273351da77 PSARC/2013/284 PTP (Precision Time Protocol) 2.2.0
Prakash Jalan <Prakash.Jalan@oracle.com>
parents:
diff changeset
    80
DOMAIN="`get_prop domain`"
34273351da77 PSARC/2013/284 PTP (Precision Time Protocol) 2.2.0
Prakash Jalan <Prakash.Jalan@oracle.com>
parents:
diff changeset
    81
if [ "$DOMAIN" -gt 0 -a "$DOMAIN" -lt 4 ]; then
34273351da77 PSARC/2013/284 PTP (Precision Time Protocol) 2.2.0
Prakash Jalan <Prakash.Jalan@oracle.com>
parents:
diff changeset
    82
	CMD_LINE_ARGS="$CMD_LINE_ARGS -i $DOMAIN"
34273351da77 PSARC/2013/284 PTP (Precision Time Protocol) 2.2.0
Prakash Jalan <Prakash.Jalan@oracle.com>
parents:
diff changeset
    83
fi
34273351da77 PSARC/2013/284 PTP (Precision Time Protocol) 2.2.0
Prakash Jalan <Prakash.Jalan@oracle.com>
parents:
diff changeset
    84
34273351da77 PSARC/2013/284 PTP (Precision Time Protocol) 2.2.0
Prakash Jalan <Prakash.Jalan@oracle.com>
parents:
diff changeset
    85
ANN_INTVL="`get_prop announce_interval`"
34273351da77 PSARC/2013/284 PTP (Precision Time Protocol) 2.2.0
Prakash Jalan <Prakash.Jalan@oracle.com>
parents:
diff changeset
    86
if [ "$ANN_INTVL" -gt 0 -a "$ANN_INTVL" -ne 2 ]; then
34273351da77 PSARC/2013/284 PTP (Precision Time Protocol) 2.2.0
Prakash Jalan <Prakash.Jalan@oracle.com>
parents:
diff changeset
    87
	CMD_LINE_ARGS="$CMD_LINE_ARGS -n $ANN_INTVL"
34273351da77 PSARC/2013/284 PTP (Precision Time Protocol) 2.2.0
Prakash Jalan <Prakash.Jalan@oracle.com>
parents:
diff changeset
    88
fi
34273351da77 PSARC/2013/284 PTP (Precision Time Protocol) 2.2.0
Prakash Jalan <Prakash.Jalan@oracle.com>
parents:
diff changeset
    89
34273351da77 PSARC/2013/284 PTP (Precision Time Protocol) 2.2.0
Prakash Jalan <Prakash.Jalan@oracle.com>
parents:
diff changeset
    90
SYNC_INTVL="`get_prop sync_interval`"
34273351da77 PSARC/2013/284 PTP (Precision Time Protocol) 2.2.0
Prakash Jalan <Prakash.Jalan@oracle.com>
parents:
diff changeset
    91
if [ "$SYNC_INTVL" -gt 0 -a "$SYNC_INTVL" -ne 1 ]; then
34273351da77 PSARC/2013/284 PTP (Precision Time Protocol) 2.2.0
Prakash Jalan <Prakash.Jalan@oracle.com>
parents:
diff changeset
    92
	CMD_LINE_ARGS="$CMD_LINE_ARGS -y $SYNC_INTVL"
34273351da77 PSARC/2013/284 PTP (Precision Time Protocol) 2.2.0
Prakash Jalan <Prakash.Jalan@oracle.com>
parents:
diff changeset
    93
fi
34273351da77 PSARC/2013/284 PTP (Precision Time Protocol) 2.2.0
Prakash Jalan <Prakash.Jalan@oracle.com>
parents:
diff changeset
    94
2987
01d2e6a3aae8 18301028 ptpd in {kernel, native} Zone may conflict with hw mode ptpd in global zone
Prakash Jalan <Prakash.Jalan@oracle.com>
parents: 2913
diff changeset
    95
ENABLE_LOGGING="`get_prop enable_logging`"
2913
34273351da77 PSARC/2013/284 PTP (Precision Time Protocol) 2.2.0
Prakash Jalan <Prakash.Jalan@oracle.com>
parents:
diff changeset
    96
LOGFILE="`get_prop logfile`"
2987
01d2e6a3aae8 18301028 ptpd in {kernel, native} Zone may conflict with hw mode ptpd in global zone
Prakash Jalan <Prakash.Jalan@oracle.com>
parents: 2913
diff changeset
    97
if [ -n "$LOGFILE" -a "$ENABLE_LOGGING" = "true" ]; then
2913
34273351da77 PSARC/2013/284 PTP (Precision Time Protocol) 2.2.0
Prakash Jalan <Prakash.Jalan@oracle.com>
parents:
diff changeset
    98
	CMD_LINE_ARGS="$CMD_LINE_ARGS -f $LOGFILE"
34273351da77 PSARC/2013/284 PTP (Precision Time Protocol) 2.2.0
Prakash Jalan <Prakash.Jalan@oracle.com>
parents:
diff changeset
    99
fi
34273351da77 PSARC/2013/284 PTP (Precision Time Protocol) 2.2.0
Prakash Jalan <Prakash.Jalan@oracle.com>
parents:
diff changeset
   100
34273351da77 PSARC/2013/284 PTP (Precision Time Protocol) 2.2.0
Prakash Jalan <Prakash.Jalan@oracle.com>
parents:
diff changeset
   101
OTHER_OPTIONS="`get_prop other_options`"
34273351da77 PSARC/2013/284 PTP (Precision Time Protocol) 2.2.0
Prakash Jalan <Prakash.Jalan@oracle.com>
parents:
diff changeset
   102
if [ -n "$OTHER_OPTIONS" ]; then
34273351da77 PSARC/2013/284 PTP (Precision Time Protocol) 2.2.0
Prakash Jalan <Prakash.Jalan@oracle.com>
parents:
diff changeset
   103
	CMD_LINE_ARGS="$CMD_LINE_ARGS $OTHER_OPTIONS"
34273351da77 PSARC/2013/284 PTP (Precision Time Protocol) 2.2.0
Prakash Jalan <Prakash.Jalan@oracle.com>
parents:
diff changeset
   104
fi
34273351da77 PSARC/2013/284 PTP (Precision Time Protocol) 2.2.0
Prakash Jalan <Prakash.Jalan@oracle.com>
parents:
diff changeset
   105
34273351da77 PSARC/2013/284 PTP (Precision Time Protocol) 2.2.0
Prakash Jalan <Prakash.Jalan@oracle.com>
parents:
diff changeset
   106
34273351da77 PSARC/2013/284 PTP (Precision Time Protocol) 2.2.0
Prakash Jalan <Prakash.Jalan@oracle.com>
parents:
diff changeset
   107
# start ptp daemon
34273351da77 PSARC/2013/284 PTP (Precision Time Protocol) 2.2.0
Prakash Jalan <Prakash.Jalan@oracle.com>
parents:
diff changeset
   108
$EXECFILE $CMD_LINE_ARGS
34273351da77 PSARC/2013/284 PTP (Precision Time Protocol) 2.2.0
Prakash Jalan <Prakash.Jalan@oracle.com>
parents:
diff changeset
   109
exit $SMF_EXIT_OK