1 #!/bin/sh 2 3 ################################################################################ 4 ## ## 5 ## Copyright (c) International Business Machines Corp., 2005 ## 6 ## ## 7 ## This program is free software; you can redistribute it and#or modify ## 8 ## it under the terms of the GNU General Public License as published by ## 9 ## the Free Software Foundation; either version 2 of the License, or ## 10 ## (at your option) any later version. ## 11 ## ## 12 ## This program is distributed in the hope that it will be useful, but ## 13 ## WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY ## 14 ## or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ## 15 ## for more details. ## 16 ## ## 17 ## You should have received a copy of the GNU General Public License ## 18 ## along with this program; if not, write to the Free Software ## 19 ## Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA ## 20 ## ## 21 ## ## 22 ################################################################################ 23 # 24 # File: 25 # check_icmpv6_connectivity 26 # 27 # Description: 28 # Functions for the network stress tests 29 # Check the ICMPv6 connectivity from a interface to a IPv6 address 30 # 31 # Arguments: 32 # $1: source interface name 33 # $2: destination IPv6 address 34 # 35 # Returns: 36 # 0: connectivity is good. 37 # 1: connectivity is something wrong. 38 # 39 # Author: 40 # Mitsuru Chinen <mitch (at] jp.ibm.com> 41 # 42 # History: 43 # Oct 19 2005 - Created (Mitsuru Chinen) 44 # 45 #----------------------------------------------------------------------- 46 #Uncomment line below for debug output. 47 #trace_logic=${trace_logic:-"set -x"} 48 $trace_logic 49 50 # The max number of ICMP echo request 51 PING_MAX=10 52 53 # Check the arguments 54 if [ $# -ne 2 ]; then 55 echo "Usage: $0 source_interface_name destionation_ipv6_address" >&2 56 exit 1 57 fi 58 src_ifname=$1 59 dst_ipv6addr=$2 60 61 cnt=0 62 while [ $cnt -lt $PING_MAX ]; do 63 cnt=`expr $cnt + 1` 64 ping6 -I $src_ifname -c 1 $dst_ipv6addr -w 1 >/dev/null 2>&1 65 if [ $? -eq 0 ]; then 66 exit 0 67 fi 68 sleep 1 69 done 70 71 exit 1 72