#!/bin/sh 
PATH=/bin:/usr/bin:/usr/sbin:/fabos/bin:/fabos/link_bin:
#
#
#    Copyright (c) 1996-2019 Brocade Communications Systems, Inc.
#    All rights reserved.
#
#    File name:   supportShow.sh.in
#    Module name: diag/scripts
#
# NAME
#      supportshow  -  display  multiple  test results for customer
#      debugging
# 
# SYNOPSIS
#      supportshow slot[/port1-port2] [ lines ]
# 
# AVAILABILITY
#      all users
# 
# DESCRIPTION
#      This command will display multiple pre-selected telnet  user
#      commands results with a range of ports specified in the user
#      input.
# 
# OPTIONS
#      slot[/port1-port2]
#                Specify the range of ports within the blade speci-
#                fied  by  slot  to  be displayed. slot must be provided
#		 except for non-Ulysess products.
# 
#      lines     Specify the number of lines for  portlogdump  out-
#                put.
# 
# EXAMPLES
#      > supportshow 1/1-3
#      version:
#      Kernel:     2.4.2
#      Fabric OS:  v4.0.0t4Feb
#      Made on:    Wed Feb 6 17:29:57 2002
#      Flash:      Thu Jan 1 00:03:19 1970
#      BootProm:   3.1.13b
# 
#      uptime:
#        9:59pm  up 7 days,  4:25,  2 users,  load average: ....
# 
#      tempshow:
# 
#      Index   Slot    State           Centigrade     Fahrenheit
#      =========================================================
#        1      1      Ok                  41            105
#        2      2      Ok                  39            102
#        3      3      Ok                  40            104
#      --- <output truncated> ---
# 
# SEE ALSO
#      portlogdump(1m), setslot(1d)
# 
#
# start_show()
#
# input : $begport, $endport
#

ECHO="echo"
CHASSISCMD=""
TTY="/dev/null"
SSAVE=FALSE
# SS_MODULE=""  // already initiated by SS
cliidx=0
newline=0

#sshowlog=/var/log/ssave.sh.log
#ssutil_log=/var/log/ssave.sh.log
if [ "$SS_TMP_DIR" = "" ]
then
    SS_TMP_DIR="/tmp"
    SS_MODULE="test"
fi

sshowlog="$SS_TMP_DIR/$SS_MODULE"
ssutil_log="$SS_TMP_DIR/$SS_MODULE"
ss_module_log=/var/log/ssave.sh.log

GZIP=/fabos/rbin/gzip
CAT=/bin/cat
cpslot=0
IPTABLES_RULES_CORRUPTION_FIX=1
c5regdmpcnt=0
NUM_SW_TOTAL=0

# Check RBAC permission on command
/fabos/libexec/rbac_check `/bin/basename $0`

if [ $? -ne 0 ]; then
    exit 127
fi

set_lscfg_test() { 

#  if [ "$SSAVE" = "TRUE" ]; then
    if [ ! -e /fabos/link_sbin/lscfg_test ]
    then
      /bin/ln -s /fabos/cliexec/lscfg_util /fabos/link_sbin/lscfg_test 2> /dev/null
      NUM_SW_TOTAL=$(lscfg_test --all  | awk '/Total/ {print $5}')
    fi
#  else
#    if [ -e /fabos/link_sbin/lscfg_test ]
#    then
#      /bin/rm /fabos/link_sbin/lscfg_test 2>/dev/null
#    fi
#    /bin/ln -s /fabos/cliexec/lscfg_util /fabos/link_sbin/lscfg_test 2> /dev/null
#    $ECHO "None SS Create lscfg_test"
#  fi
}

unset_lscfg_test()
{
  if [ "$SSAVE" = "FALSE" ]
  then
      /bin/rm -rf /fabos/link_sbin/lscfg_test 2>/dev/null
      $ECHO "Remove lscfg_test"
  fi
}

#
# copied from /fabos/src/setup/profile
#
setcontext()
{
    if [ "$1" != "chassis" ]
    then
		export FABOS_SWITCHNO=$2
		export CURRENT_VF=$1
		export CHASSIS_ROLEID=0
    else
		export FABOS_SWITCHNO=-1
		export CURRENT_VF=255
		export CHASSIS_ROLEID=0
    fi
#	export ROLE_ID=root
}

#set ROLE to root pass remaining RBAC checks. Don't do it before rbac_check
export ROLE_ID=root
export CHASSIS_ROLEID=0
export LOGIN_ID=root

export HOME=/root
export LOGNAME=root
export PWD=/root
#export TERM=vt100


######################################################################################
# NAME
#    cmd_nonvf - None VF mode switch cmd
#
# SYNOPSIS
#    cmd_nonvf cmd cmd-arg ..

# DESCRIPTION
#
# OPERANDS
#    cmd cmd-arg ..
#####################################################################################
cmd_nonvf() {
 if [ "$SSAVE" = "TRUE" ]; then
    $ECHO "********************************************************"
    clicmd=${1##*/}
    $ECHO -e "SWITCHCMD $@:"
    /bin/date
    $ECHO "********************************************************"
#    $ECHO -n . > $TTY
    let cliidx++
    $ECHO "$cliidx $SS_MODULE SW $@"  >> $ssutil_log
    sync
    $ECHO -e "$@:"	 
    time $@

    rc=$?
    if [ $rc -ne 0 ]; then
        $ECHO "CLI ERR:$rc, $@" >> $ssutil_log
    fi
    $ECHO ""
    $ECHO -e "** SS CMD END **"
 else
     clicmd=${1##*/}
     $ECHO -e "$clicmd $2 $3 $4 $5 $6 $7 $8 $9:"
     $@
     $ECHO ""
 fi
}


######################################################################################
# NAME
#    cmd_nonvf - None VF mode chassis cmd
#
# SYNOPSIS
#    cmd_nonvf cmd cmd-arg ..
#
# DESCRIPTION
#
# OPERANDS
#    cmd cmd-arg ..
#####################################################################################
cmd_nonvf_ch() {
 if [ "$SSAVE" = "TRUE" ]; then
    $ECHO "********************************************************"
    clicmd=${1##*/}
    $ECHO -e "CHASSISCMD $@:"
    /bin/date
    $ECHO "********************************************************"
#    $ECHO -n . > $TTY
    let cliidx++
    $ECHO "$cliidx $SS_MODULE CH $@"  >> $ssutil_log
    sync
    $ECHO -e "$@:"	 
    time $@

    rc=$?
    if [ $rc -ne 0 ]; then
        $ECHO "CLI ERR:$rc, $@" >> $ssutil_log
    fi
    $ECHO ""
    $ECHO -e "** SS CMD END **"
 else
    clicmd=${1##*/}
    $ECHO -e "$clicmd $2 $3 $4 $5 $6 $7 $8 $9:"
    $@
    $ECHO ""
  fi
}


######################################################################################
# NAME
#    cmd_chassis - VF mode chassis cmd
#
# SYNOPSIS
#    cmd_chassis cmd cmd-arg ..
#
# DESCRIPTION
#
# OPERANDS
#    cmd cmd-arg ..
#####################################################################################
cmd_chassis()
{
  setcontext chassis
  if [ "$SSAVE" = "TRUE" ]; then	
    $ECHO "********************************************************"
    clicmd=${1##*/}
    $ECHO -e "CHASSISCMD $@:"
    #$ECHO -e "$clicmd $2 $3 $4 $5 $6 $7 $8 $9:"
    /bin/date
    $ECHO "********************************************************"
#    $ECHO -n . > $TTY
    newline=1
    let cliidx++
    $ECHO "$cliidx $SS_MODULE CH $@" >> $ssutil_log
    $ECHO -e "$@:"	
    time $@

    rc=$?
    if [ $rc -ne 0 ]
    then
      $ECHO "CLI ERR:$rc $@" >> $ssutil_log
    fi
    $ECHO ""
    $ECHO -e "** SS CMD END **"
  else
    clicmd=${1##*/}
    $ECHO -e "$clicmd $2 $3 $4 $5 $6 $7 $8 $9:"
    $@
    $ECHO ""
  fi
}

cmd_base_switch() {
  if [ "$SSAVE" = "TRUE" ]; then
    $ECHO "********************************************************"
    clicmd=${1##*/}
    $ECHO -e "BASESWCMD $@:"
    /bin/date
    $ECHO "********************************************************"
    $ECHO "BASE SWITCH CONTEXT -- FID: $BASE_SW_FID" >> $sshowlog
    $ECHO "BASE SWITCH CONTEXT -- FID: $BASE_SW_FID"
#    $ECHO -n . > $TTY
    let cliidx++
    $ECHO "$cliidx $SS_MODULE SW $@"  >> $ssutil_log
    $ECHO -e "$@:"	 
    time $@
    rc=$?
    if [ $rc -ne 0 ]; then
        $ECHO "CLI ERR:$rc, $@" >> $ssutil_log
    fi
    $ECHO ""
    $ECHO -e "** SS CMD END **"
  else
    clicmd=${1##*/}
    $ECHO -e "$clicmd $2 $3 $4 $5 $6 $7 $8 $9:"
    $@
    $ECHO ""
  fi
}

cmd_root()
{
    if [ "$SSAVE" = "TRUE" ]; then
	let cliidx++
	$SSCMD $@ "--sscommand=1" -l $ssutil_log -a -c$cliidx
    else
	$SSCMD $@ "--sscommand=1" -l $ssutil_log
    fi
}

ROOTCMD="cmd_root"

######################################################################################
# NAME
#    group_show - Invoke group of CMD, the sequence of CMD in the group
#    will be logged
#
# SYNOPSIS
#    $EXEC_GROUP group_name
#
# DESCRIPTION
#
# OPERANDS
#    group_name
#####################################################################################
group_show()
{
  if [ "$SSAVE" = "TRUE" ]; then
    $ECHO "********************************************************"
    $ECHO $SS_MODULE Group: $1
    /bin/date
    $ECHO "********************************************************"
    $ECHO "********************************************************" >> $ssutil_log
    $ECHO "$SS_MODULE Group: $1"				     >> $ssutil_log
    /bin/date							     >> $ssutil_log
    $ECHO "********************************************************" >> $ssutil_log

    cliidx=0
    time $1
    $ECHO "============================================================================="  >> $ssutil_log
    $ECHO "vmstat:"						      >> $ssutil_log
    vmstat							      >> $ssutil_log
    $ECHO "loadavg:"						      >> $ssutil_log
    /bin/cat /proc/loadavg					      >> $ssutil_log
    $ECHO "/tmp usage:"						      >> $ssutil_log
    du -h /tmp							      >> $ssutil_log
    $ECHO "============================================================================="  >> $ssutil_log
    $ECHO "$SS_MODULE Group End: $1"				      >> $ssutil_log
    /bin/date                                                              >> $ssutil_log
    $ECHO "********************************************************"  >> $ssutil_log

    $ECHO "$SS_MODULE Group End: $1"
    /bin/date
    $ECHO "********************************************************"
    /bin/cat $ssutil_log >> $ss_module_log

    RETVAL=`echo $?`

  else
   $ECHO "**** Begin $1 group ****"
   /bin/date
   $1
   /bin/date
  $ECHO "**** End $1 group ****"
  fi



}
EXEC_GROUP='group_show'


######################################################################################
# NAME
#    catfile (CATFILE) - display a file if it exist.
#
# SYNOPSIS
#    $CATFILE full_file_name_path
#
# DESCRIPTION
#
# OPERANDS
#    full_file_name_path
#####################################################################################
catfile()
{
  
  if [ -f $1 ]; then
      $ROOTCMD  $CAT $1
  fi
}
CATFILE="catfile"

######################################################################################
# NAME
#    catfile_rm (CATFILE_RM) - display a file if it exist. Remove the file afterwards.
#
# SYNOPSIS
#    CATFILE_RM full_file_name_path
#
# DESCRIPTION
#
# OPERANDS
#    full_file_name_path
#####################################################################################
catfile_rm()
{
    if [ -f $1 ]; then
        $CHASSISCMD  $CAT $1
	/bin/rm	$1
    fi
}
CATFILE_RM="catfile_rm"

######################################################################################
# NAME
#    system_info - display system info
#
# SYNOPSIS
#    system_info
#
# DESCRIPTION
#
# OPERANDS
#    NONE
#####################################################################################
system_info()
{
     $ECHO "Platform: $sw_platform"
     $ECHO "Standby CP: $standby"
     $ECHO "FABOS OFF: $FABOS_OFF"
     $ECHO "WMEM switch=$isWM"
     $ECHO "VF Mode: $HOME_VF"
     $ECHO "Date:"
     /bin/date
}


#
# cmd to iterate through all switch instances
#
#
cmd_iterate_all() {
	$SSCMD $@ "--sscommand=3" -l$sshowlog
}

#
# cmd to iterate through all switch instances
# SSAVE Version
#
cmd_iterate_all_ss() {
	let cliidx++
	$SSCMD $@ "--sscommand=3" -l$sshowlog -a -c$cliidx
	let "cliidx=cliidx+$NUM_SW_TOTAL"
	newline=1
}

#
# display completion note before exiting from supportshow
#
end_tail() {

  if [ "$SSAVE" = "FALSE" ]
  then
    $ECHO "Please run supportSave if you wish to collect more support information and FTP them off the switch"
  fi

#  if [ $newline -eq 1 ]
#  then
#     $ECHO  " " > $TTY
#  fi

}

top_ten_files()
{
  /bin/echo "********************************************************"
  /bin/echo "        Top Ten Most Disk Consuming Files         "
  /bin/echo "********************************************************"
  /usr/bin/find / -xdev -type f -fstype nfs -prune -o -path /mnt -prune -o -printf '%s %p\n'|sort -nr|head
  /bin/echo "********************************************************"

}

start_os()
{
  #tr did not like the spaces
  #export TERMINFO=/usr/share/terminfo
  $CHASSISCMD printenv
  $CHASSISCMD /usr/bin/w
  $CHASSISCMD /usr/bin/vmstat
  #$CHASSISCMD /usr/bin/top -n1
  $CHASSISCMD /usr/bin/iostat
  $CHASSISCMD /sbin/mii-tool -vvv 2>/dev/null
  $CHASSISCMD /bin/df -h
  $CHASSISCMD /usr/bin/du -xh /

  if [ "$SSAVE" = "TRUE" ]
  then
      $CHASSISCMD top_ten_files

  # list /var/log dir
      $CHASSISCMD /bin/ls -l /var/log
      $CHASSISCMD /bin/ls -l /tmp
  fi

  # had a request for -aux?
  $CHASSISCMD /bin/ps exfcl

  $CHASSISCMD /bin/rpm -qa

  # Why not use the dmesg command, cause the log is overwritten by other kernel
  # modules. /var/log/dmesg preserve dmesg info during the boot up.
  $ROOTCMD /bin/cat /var/log/dmesg

  $CHASSISCMD /bin/dmesg

  $CATFILE /etc/fstab

  $CATFILE /etc/mtab

  $CATFILE /proc/sys/kernel/printk
  
  $CATFILE /proc/net/tcp6

  $CATFILE /sys/block/sda/stat

  $CATFILE /proc/diskstats

  $CHASSISCMD /usr/bin/iostat -xk

  # linux proc
  proc_entries="buddyinfo,cmdline,cpuinfo,crypto,devices,diskstats,filesystems,interrupts,iomem,ioports,loadavg,locks,meminfo,misc,modules,mounts,mtd,net/tcp,net/udp,net/netstat,net/sockstat,panicdump,partitions,pci,pdmisc,sched_debug,softirqs,stat,tty/drivers,uptime,version,slabinfo,vmallocinfo,zoneinfo*/fpga,ddr_ecc/ecc_stats,wmap/wmap_chunks,*/fpga,wmd/header"

  for proc_entry in `/bin/echo $proc_entries | /usr/bin/tr "," "\n"`
  do
    $CATFILE /proc/$proc_entry
  done

  if [ "$SSAVE" = "TRUE" ]
  then
      $CHASSISCMD /usr/bin/find /core_files /mnt/core_files -type f
  fi

  # fabos proc
  if [ $standby = no ]
  then
    if [ $sw_platform == 161 ] || [ $sw_platform == 162 ] || [ $sw_platform == 181 ] || [ $sw_platform == 184 ]
    then
      for proc_entry in /proc/*/fpga_show_all
      do
	$CATFILE $proc_entry
      done
    fi

    # need provide full proc path
    for proc_entry in /proc/*/fpga /proc/fabos/switch/*/route_info /proc/fabos/switch/*/logical_info /proc/fabos/switch/*/throttle_info /proc/fabos/switch/*/pt_throttle_info_all
    do
	$CATFILE $proc_entry
    done
  else
    for proc_entry in /proc/*/fpga /proc/fabos/switch/*/logical_info
    do
	$CATFILE $proc_entry
    done
  fi 

  if [ "$SSAVE" = "FALSE" ]
  then
    /bin/echo "validating rpm database on primary partition"
    $CHASSISCMD /bin/rpm -Va
  fi

  # icmp and tcp burstrate
  $CATFILE /proc/sys/net/ipv4/conf/eth0/ip_unreachable
  $CATFILE /proc/sys/net/ipv4/conf/eth0/icmp_echo_ignore
  $CATFILE /proc/sys/net/ipv4/conf/eth0/icmp_rlimit_enable
  $CATFILE /proc/sys/net/ipv4/icmp_ratemask
  $CATFILE /proc/sys/net/ipv6/conf/eth0/ipv6_unreach
  $CATFILE /proc/sys/net/ipv6/conf/eth0/echo_ignore
  $CATFILE /proc/sys/net/ipv6/icmp/ratelimit
  $CATFILE /proc/sys/net/ipv4/tcp_rate_limit
  $CATFILE /proc/sys/net/ipv4/tcp_rate_limit_drop_time
  $CATFILE /proc/net/tcp_rate_limit_log
  $CATFILE /proc/net/netlink
  $CATFILE /etc/icmp.conf
  $CATFILE /etc/tcpburstrate.conf
  
  $CHASSISCMD /fabos/cliexec/dnsconfig --show

#  $CHASSISCMD /usr/bin/find /core_files /mnt/core_files -type f

  $CHASSISCMD /sbin/bootenv
  $CHASSISCMD /sbin/sin
  $CHASSISCMD /bin/df
  $CHASSISCMD /sbin/ifconfig
  $CHASSISCMD /sbin/route
  $CHASSISCMD /bin/hostname
  $CHASSISCMD cat /proc/net/arp
  $CHASSISCMD /sbin/ip -s link
  $CHASSISCMD /sbin/ip -s addr
  $CHASSISCMD /bin/netstat -an
  $CHASSISCMD /bin/netstat -ng
  $CATFILE /proc/vsd_info
  $CATFILE /proc/standby_console
  $CATFILE /proc/hv_console

  if [ "$SSAVE" = "TRUE" ]; then
      for memfile in `/bin/ls -tr /var/log/mstatdir/memorystatus*`
      do
	  $CATFILE $memfile
      done
  fi
}

#
# Uncomment following to force debug behavior, or use --debug
#
#CHASSISCMD="$ECHO"

start_os_cmd() {
  
  start_os

  #tr did not like the spaces
  $CHASSISCMD /usr/bin/top -n 1

#start_os  $CHASSISCMD  /sbin/mii-tool -vvv 2>/dev/null

#start_os  $CHASSISCMD "/usr/bin/du -xh / | /bin/sort" 2>/dev/null

#start_os  $CHASSISCMD /bin/hostname

  # had a request for -aux? 
#start_os  $CHASSISCMD /bin/ps exfcl

#start_os  $CHASSISCMD /bin/rpm -qa

  # dnsconfig 
#  $CHASSISCMD /fabos/cliexec/dnsconfig --show

  # Why not use the dmesg command, cause the log is overwritten by other kernel
  # modules and we need the linux kernel info.
#start_os  $CHASSISCMD /bin/cat /var/log/dmesg
#start_os  $CHASSISCMD /bin/dmesg
#start_os  $CHASSISCMD /bin/cat /etc/fstab
#start_os  $CHASSISCMD /bin/cat /etc/mtab

  # Console log levels
#start_os  $CATFILE /proc/sys/kernel/printk

  $CHASSISCMD /bin/tar -cvPf /var/log/CGROUP_LOGS.tar /var/log/fos_cgroup.log* 2> /dev/null

#  $ECHO "printing proc entries"
#  sync
#driver/iic/perf_stats
#  if [ $standby = no ]
#  then
#     proc_entries="cmdline,cpuinfo,devices,filesystems,interrupts,meminfo,modules,mounts,mtd,partitions,pci,slabinfo,stat,tty/drivers,uptime,version,fabos/iu/stats,fabos/mediafail"
#  else
#     proc_entries="cmdline,cpuinfo,devices,filesystems,interrupts,meminfo,modules,mounts,mtd,partitions,pci,slabinfo,stat,tty/drivers,uptime,version,fabos/iu/stats"
#  fi

#  for proc_entry in `$ECHO $proc_entries | /usr/bin/tr "," "\n"`
#  do
#	if [ -f /proc/$proc_entry ]; then
#		$CHASSISCMD /bin/cat /proc/$proc_entry
#		sync
#	else
#		$ECHO "proc entry not found : /proc/$proc_entry"
#	fi
#  done

#  if [ $standby = no ]
#  then
#    if [ $sw_platform == 161 ] || [ $sw_platform == 162 ] || [ $sw_platform == 181 ]
#    then
#	for proc_entry in /proc/*/fpga_show_all
#	do
#		if [ -f $proc_entry ]; then
#			$CHASSISCMD /bin/cat $proc_entry
#			sync
#		else
#			$ECHO "proc entry not found : $proc_entry"
#		fi
#	done
#    fi

#  for proc_entry in /proc/*/fpga /proc/fabos/switch/*/route_info /proc/fabos/switch/*/logical_info /proc/fabos/switch/*/throttle_info /proc/fabos/switch/*/pt_throttle_info_all
#   do
#   	if [ -f $proc_entry ]; then
#       	$CHASSISCMD /bin/cat $proc_entry
#      		sync
#   	else
#       	$ECHO "proc entry not found : $proc_entry"
#   	fi
# 	done
#  else
#	for proc_entry in /proc/*/fpga /proc/fabos/switch/*/logical_info
#	do
#		if [ -f $proc_entry ]; then
#			$CHASSISCMD /bin/cat $proc_entry
#			sync
#		else
#			$ECHO "proc entry not found : $proc_entry"
#		fi
#	done
#  fi 

# print blade info proc entry which has FCR data for Marathon and sprint
  all_slots=`getAvailSlots -switchnofault`
  
  # Loop over all ports on all slots
  if [ $standby = no ]
  then
	  for a_slot in $all_slots
	  do
	      $CATFILE /proc/fabos/blade/$a_slot/info
	  done
  fi

#  $CHASSISCMD /usr/bin/find /core_files /mnt/core_files -type f

#  if [ "$SSAVE" = "FALSE" ]
#  then
#    $CHASSISCMD /bin/rpm -Va
#  fi
  [ -e "/sbin/ethratelimit" ] && $CHASSISCMD /sbin/ethratelimit -s
}

start_exception_cmd() {
  $CHASSISCMD /fabos/cliexec/errdump -a

  $CHASSISCMD /fabos/sbin/pdshow 2> /dev/null
}

#
# helper for dumping fabric info per port
#
start_fab_port_cmd() {
  #
  #display info by port #port
  #

  if [ "$multiBlade" = "TRUE" ]
  then
    str=$slot
  else
    str=""
  fi
  user_ports=`getUserPortList $slot -list`
  if [ "$user_ports" != NO_USER_PORTS ]
  then
    num_ports=`$ECHO $user_ports | \
          /usr/bin/wc -w | \
          /usr/bin/tr -s " " " " | \
          /usr/bin/cut -d" " -f2`
    begport=`$ECHO $user_ports | /usr/bin/cut -d" " -f 1`
    endport=`$ECHO $user_ports | /usr/bin/cut -d" " -f $num_ports`
  	for port in $user_ports
  	do
    	if [ $port -lt $begport ] || [ $port -gt $endport ]
    	then
      		continue
    	fi
    #
    # for each port, fabric info
    #
    $CHASSISCMD /fabos/cliexec/fabportshow --slot $slot $port
  	done
  else 
  	return
  fi	
}

getFcoePorts()
{
	_abc=`/bin/cat /proc/fabos/switch/$1/info | \
	/bin/grep -i fcoe | \
	/bin/grep -i online | \
	/usr/bin/cut -c12-15 | \
	/usr/bin/xargs /bin/echo`

	/bin/echo "$_abc"
}

fcoe_port_show()
{
	fcoe_ports=`getFcoePorts $CUR_SW_INST`
	if [ -n "$HOME_VF" ]; then
		$ECHO "CURRENT CONTEXT -- $CUR_SW_INST , $FABID"
	else
		$ECHO "CURRENT CONTEXT -- $CUR_SW_INST"
	fi
	for fcoeport in $fcoe_ports
	do
		if [ -r /proc/fabos/switch/$CUR_SW_INST/$fcoeport/info ]
		then
			$CATFILE /proc/fabos/switch/$CUR_SW_INST/$fcoeport/info
		fi

		if [ -r /proc/fabos/switch/$CUR_SW_INST/$fcoeport/login ]
		then
			$CATFILE /proc/fabos/switch/$CUR_SW_INST/$fcoeport/login
		fi
	done
  $ECHO ""

}
start_fcoe_cmd() {
    #
    # reusing cmd_nonvf
    #

if [ $sw_platform == 165 ] || [ $sw_platform == 166 ] || [ $sw_platform == 179 ] || [ $sw_platform == 180 ] || [ $sw_platform == 181 ];
then

    CUR_LS_INST=( `lscfg_test --current `)

    $ECHO "FCOE SHOW COMMANDS"

    #$SWITCHCMD /fabos/bin/fcoe --show -fabricmap
    $SWITCHCMD /fabos/bin/fcoe --show -fabric

    $SWITCHCMD /fabos/bin/fcoe --show -fcf

    #$SWITCHCMD /fabos/bin/fcoe --show -login fabricmap
    $SWITCHCMD /fabos/bin/fcoe --show -login

    $SWITCHCMD /fabos/bin/fcoe --show -login brief

    $SWITCHCMD /fabos/bin/fcoe --show -provision

    $SWITCHCMD /fabos/bin/fcoe --show -stats

    $SWITCHCMD /fabos/bin/fcoe --show -portchannel

   if [ "$SSAVE" = "TRUE" ]; then
    $ECHO "FCOE DEBUG SHOW COMMANDS"

    $SWITCHCMD /fabos/rbin/fcoedebugshow --ethporttbl

    $SWITCHCMD /fabos/rbin/fcoedebugshow --bindtbl

    $SWITCHCMD /fabos/rbin/fcoedebugshow --vxporttbl

    $SWITCHCMD /fabos/rbin/fcoedebugshow --swinfo

    $SWITCHCMD /fabos/rbin/fcoedebugshow --globalinfo

    DEFAULT_SWNO=( `lscfg_test --all | grep -E "Default" | sed 's/^[ \t]*//;s/\([0-9]\).*/\1/;'` )

    if [ $CUR_LS_INST = $DEFAULT_SWNO ]; then

    $ECHO "FCOE DRIVER DBG COMMANDS"

    $CHASSISCMD /fabos/rbin/fcoe_dbg fcoe show allports

    $CHASSISCMD /fabos/rbin/fcoe_dbg fcoe show pending

    $CHASSISCMD /fabos/rbin/fcoe_dbg fcoe show devices

    $CHASSISCMD /fabos/rbin/fcoe_dbg fcoe show swcfg

    $CHASSISCMD /fabos/rbin/fcoe_dbg fcoe show portstate

    $CHASSISCMD /fabos/rbin/fcoe_dbg fcoe show ha

    $CHASSISCMD /fabos/rbin/fcoe_dbg fcoe show ha_recov_dead_np

    $CHASSISCMD /fabos/rbin/fcoe_dbg fcoe show kap detail

    $CHASSISCMD /fabos/rbin/fcoe_dbg fcoe show mem-stats

    $CHASSISCMD /fabos/rbin/fcoe_dbg fcoe show enode-binding

    $CHASSISCMD /fabos/rbin/fcoe_dbg fcoe show lag-details

    $CHASSISCMD /fabos/rbin/fcoe_dbg fcoe show servicestats

    $CHASSISCMD /fabos/rbin/fcoe_dbg fcoe show direct

    $CHASSISCMD /fabos/rbin/fcoe_dbg fcoe show eth-ports

    $CHASSISCMD /fabos/rbin/fcoe_dbg fcoe show eth-ports-stats

    $CHASSISCMD /fabos/rbin/fcoe_dbg fcoe show eth-ports-binding

    $CHASSISCMD /fabos/rbin/fcoe_dbg fcoe show sw_port_bmp

    $CHASSISCMD /fabos/rbin/fcoe_dbg fcoe show vf_fcf_mac

    $CHASSISCMD /fabos/rbin/fcoe_dbg fcoe show vf_fcf_mac_pool

    $CHASSISCMD /fabos/rbin/fcoe_dbg fcoe show lag_fcf_mac_pool
    fi
   fi
fi
}

start_ucid_cmd() {
if [ $sw_platform == 165 ] || [ $sw_platform == 166 ] || [ $sw_platform == 179 ] || [ $sw_platform == 180 ] || [ $sw_platform == 181 ];
then

    $ECHO "UCID SHOW COMMANDS"

    $SWITCHCMD /fabos/rbin/ucidshow --haintent

    $SWITCHCMD /fabos/rbin/ucidshow --ethporttbl
fi
}

start_fc_fabric_cmd() {

  # don't dump this information on standby cp
  if [ $standby = yes ]
  then
	return
  fi

  # Switch name is not included in fabricshow -version.
  # So, call fabricshow twice.
  $SWITCHCMD /fabos/cliexec/fabricshow

  $SWITCHCMD /fabos/cliexec/fabricshow -version

  $SWITCHCMD /fabos/cliexec/dom

  $SWITCHCMD /fabos/cliexec/islshow

  #fabretrystats --show
  $SWITCHCMD /fabos/bin/fabretrystats --show

  #
  # Run following LF CLI's only if VF mode is ON.
  #
  if [ "$HOME_VF" != "" ]; then
	$CHASSISCMD lfcfg --showall -cfg 
 
	$CHASSISCMD lfcfg --showall -lisl -v

	$CHASSISCMD lfmlog --dump
  fi

  $SWITCHCMD /fabos/cliexec/trunkshow

  #fabriclog --show()
  $SWITCHCMD /fabos/bin/fabriclog --show

  #fabriclog --show()
  $SWITCHCMD /fabos/bin/fabriclog --show dport

  #fabswitchshow()
  $SWITCHCMD /fabos/cliexec/fabswitchshow

  #ess show
  $SWITCHCMD /fabos/link_rbin/ess show

  #ess show
  $SWITCHCMD /fabos/link_rbin/ess show dcl

  #fabstatsshow()
  $SWITCHCMD /fabos/cliexec/fabstatsshow

  # need to loop over slots and ports for this
  $SWITCHCMD /fabos/cliexec/fabportshow all_ports	
  $SWITCHCMD /fabos/cliexec/fabportshow $internal_port

  # uroutedump (not in 4.1, only 3.1)
  ###$ECHO "uroutedump:"
  ###$CHASSISCMD uroutedump
  ###$ECHO ""

  # 9. fspfShow()
  $SWITCHCMD /fabos/cliexec/fspfshow

  # fcplogshow() (not in 3.1)
  #$ECHO "fcplogshow:"
  #$SWITCHCMD /fabos/cliexec/fcplogshow
  #$ECHO ""

  # Dumps zoning state-machine
  $SWITCHCMD /fabos/cliexec/zone stateshow

  # Dumps alias peer zone hash table 
  $SWITCHCMD /fabos/cliexec/zone alihashshow

  # portzoneshow 
  $SWITCHCMD /fabos/cliexec/portzoneshow

  # portcamshow 
  $SWITCHCMD /fabos/cliexec/portcamshow

  $SWITCHCMD /fabos/cliexec/cfgsize

  # FOS-823506: Adding 'cfgtransshow --opentrans' and 'zonefabriclock --show'
  # to aid in debugging fabric-wide zone transaction issues. There is some
  # zone fabric lock and xactInProg info printed in the 'zone stateshow' output
  # but these commands will make the info easier and more obvious to search for.
  $SWITCHCMD /fabos/cliexec/cfgtransshow --opentrans
  $SWITCHCMD /fabos/cliexec/zonefabriclock --show

  $SWITCHCMD /fabos/cliexec/zoneshow --peerzone all

  $SWITCHCMD /fabos/cliexec/cfgshow --verbose

  # FOS-813442: Adding 'zoneshow --validate' back in 9.0. For SSHOW_FABRIC.txt
  # file size and performance reasons, we will only validate the Effective
  # Configuration (mode = 2). Can't think of a good reason to include validation
  # for the Defined Configuration. 
  $SWITCHCMD /fabos/cliexec/zoneshow --validate ,2

  $SWITCHCMD /fabos/link_abin/defzone --show

  $SWITCHCMD /fabos/link_bin/zone --show

  # bcastshow 
  $SWITCHCMD /fabos/cliexec/bcastshow

  # rcssmshow 
  $SWITCHCMD /fabos/cliexec/rcssmshow

  # rcsinfoshow 
  $SWITCHCMD /fabos/cliexec/rcsinfoshow

  # rcsregistryshow 
  $SWITCHCMD /fabos/cliexec/rcsregistryshow

  # zone mergeshow
  # $SWITCHCMD /fabos/cliexec/zone mergeshow
	
  #ipfilter --show 
  $CHASSISCMD /fabos/link_abin/ipfilter --show
  
  #iptables -L 
  $ROOTCMD /sbin/iptables -L -vvv
#   $ECHO "1.role:$ROLE_ID"  
#    export ROLE_ID=root
#   $ECHO "2.role:$ROLE_ID"  
#   $ECHO "1login:$LOGIN_ID"  
#    export LOGIN_ID=root
#   $ECHO "2.login:$LOGIN_ID"  

#ip6tables -L 
  $ROOTCMD /sbin/ip6tables -L -vvv

# porttrunkarea show commands
  $SWITCHCMD /fabos/link_sbin/porttrunkarea --show enabled

  $SWITCHCMD /fabos/link_sbin/porttrunkarea --show disabled

  $SWITCHCMD /fabos/link_sbin/porttrunkarea --show all

  $SWITCHCMD /fabos/link_sbin/porttrunkarea --show trunk

  $SWITCHCMD /fabos/cliexec/fcplogshow

# portdporttest show commands   
  $SWITCHCMD /fabos/link_bin/portdporttest --show all

# Add /var/tmp/dport/ files
  if [ -d /var/tmp/dport ]; then
  cd /var/tmp/dport
  DPORT_FILES=$(ls /var/tmp/dport)
  for FILE in  $DPORT_FILES
  do
  $CHASSISCMD cat $FILE
  done
  fi

# wwnaddress show command
  $SWITCHCMD /fabos/link_sbin/wwnaddress --show 

  $SWITCHCMD /fabos/cliexec/topologyshow -1

# agshow
  $SWITCHCMD /fabos/cliexec/ms agshow --all

# fabchassisshow
  $CHASSISCMD /fabos/cliexec/fabchassisshow

# fcprlsprobe --show all command
  $SWITCHCMD /fabos/link_bin/fcprlsprobe --show -all

# pfmutil --show -debug command
#  pfm_platform=$( /sbin/sin 2>/dev/null | sed -n 's/^.*SWBD\([^,]*\),.*/\1/p' )
#    if [ $pfm_platform == 179 ] || [ $pfm_platform == 180 ] || [ $pfm_platform == 181 ]
#   if [ $sw_platform == 179 ] || [ $sw_platform == 180 ] || [ $sw_platform == 181 ] || [ $sw_platform == 184 ]
#    then
#	$CHASSISCMD pfmutil --show -debug
#    fi


}

start_fc_service_cmd() {
  $SWITCHCMD /fabos/cliexec/nsshow -r

  $SWITCHCMD /fabos/cliexec/nsallshow

  $SWITCHCMD /fabos/cliexec/nszonemember -n

  $SWITCHCMD /fabos/cliexec/nscamshow -t

  $SWITCHCMD /fabos/cliexec/ns portshow

  # fdmiShow - call this part of other services for now
  if [ $standby = no ]
  then
    $SWITCHCMD /fabos/cliexec/fdmishow
  fi

  # fdmiCacheShow - with other fdmi
  if [ $standby = no ]
  then
    $SWITCHCMD /fabos/cliexec/fdmicacheshow
  fi

  # nbrstateshow - Added in defect 41819
  $SWITCHCMD /fabos/cliexec/nbrstateshow

  $SWITCHCMD /fabos/cliexec/lsdbshow -1

  $SWITCHCMD /fabos/cliexec/interfaceshow -1

  # Application Server
  $SWITCHCMD /fabos/cliexec/appserver --domaininfo -all

  $SWITCHCMD /fabos/cliexec/appserver --show -all

  if [ $standby = no ]
  then
	$SWITCHCMD /fabos/cliexec/appsrvr test --shm -state
  fi

  # Fabric Traffic Controller
  if [ $standby = no ]
  then
	$SWITCHCMD /fabos/cliexec/fabricnotification --show -brief
	$SWITCHCMD /fabos/cliexec/fabricnotification --show -all
  fi

  #portname
  if [ $standby = no ]
  then
  	$SWITCHCMD /fabos/sbin/portname
  fi
}

start_security_cmd() {

  $SWITCHCMD authUtil --show

  $SWITCHCMD /fabos/link_abin/fddCfg --showall

  $SWITCHCMD /fabos/cliexec/secpolicydump

  $SWITCHCMD /fabos/cliexec/secstatsshow

  $SWITCHCMD /fabos/cliexec/secglobalshow

  export SUPPORTSHOW_CTX=1
  $SWITCHCMD authUtil --dump -a

  $CHASSISCMD /fabos/link_abin/aaaConfig --show -npage

  $CHASSISCMD /fabos/link_abin/ldapcfg --show

  $CHASSISCMD /fabos/link_abin/seccryptocfg --show

  $CHASSISCMD /fabos/link_sbin/seccertmgmt show -all

  $SWITCHCMD /fabos/link_sbin/secactivesize

  $SWITCHCMD /fabos/link_sbin/secdefinesize

  $CHASSISCMD /fabos/link_bin/ipaddrshow

  $ECHO "Current User: $LOGIN_ID"
  $ECHO "userconfig --show -a:"
  if [ $standby = no ]
  then
    $SWITCHCMD /fabos/link_bin/userconfig --show -a
  fi
  $ECHO ""

  $CHASSISCMD /fabos/link_abin/fipscfg --show

  $ROOTCMD /usr/bin/tail -200 /var/log/user.log

if [ $IPTABLES_RULES_CORRUPTION_FIX -eq 1 ]; then
  if [ -f /tmp/oldip4rule.txt ]; then
	  $CHASSISCMD /bin/cat /tmp/oldip4rule.txt
  fi
  
  if [ -f /tmp/oldip6rule.txt ]; then
	  $CHASSISCMD /bin/cat /tmp/oldip6rule.txt
  fi

  if [ -f /tmp/netfilter.rules.ipv4 ]; then
	  $CHASSISCMD /bin/cat /tmp/netfilter.rules.ipv4
  fi

  if [ -f /tmp/netfilter.rules.ipv6 ]; then
	  $CHASSISCMD /bin/cat /tmp/netfilter.rules.ipv6
  fi
  $CHASSISCMD /bin/tar -cvPf /var/log/LDAP_LOGS.tar /var/log/ldapAuth.log* 2> /dev/null
fi


$ECHO ""
$SWITCHCMD /fabos/rbin/tsstat
$SWITCHCMD /fabos/link_sbin/tsClockServer 

# Print /var/log/tslog.txt and /var/log/ntplog.txt
file_no="`/bin/ls /var/log/tslog.txt* /var/log/ntplog.txt* 2> /dev/null`"
for file in $file_no ; do
    $ROOTCMD /bin/cat $file
done

file_no="`/bin/ls /mnt/var/log/tslog.txt* /mnt/var/log/ntplog.txt* 2> /dev/null`"
for file in $file_no ; do
    $ROOTCMD /bin/cat $file
done

}

start_network_cmd() {
cmds="/sbin/bootenv,/sbin/sin,/bin/df,/bin/hostname"

  for cmd in `$ECHO $cmds | /usr/bin/tr "," "\n"`
  do
    $CHASSISCMD $cmd
  done                       
  
  $CHASSISCMD /sbin/route -n
  
  $CHASSISCMD /sbin/ifconfig -a

  $CHASSISCMD /sbin/arp -n

  $CHASSISCMD /sbin/mii-tool -vv eth0 2> /dev/null

  $CHASSISCMD /sbin/ethtool --statistics eth0 2> /dev/null

  $CHASSISCMD /sbin/ethtool eth0  2> /dev/null

  $CHASSISCMD /sbin/ethtool eth2 2> /dev/null

  $CHASSISCMD /sbin/ip -s link

  $CHASSISCMD /sbin/ip -s addr

  $CHASSISCMD /bin/cat /proc/net/tcp

  $CHASSISCMD /bin/cat /proc/net/udp

  $CHASSISCMD /bin/cat /proc/net/netstat

  ( $CHASSISCMD /fabos/link_bin/netstat -a ) & pid=$!
  ( sleep 5 && kill -HUP $pid ) & watcher=$! 1>/dev/null 2>&1
  if wait $pid 1>/dev/null 2>&1; then
      kill -HUP -P $watcher 1>/dev/null 2>&1
      wait $watcher 1>/dev/null 2>&1
  else
      echo "netstat -a stuck for 5 secs, executing netstat -an"
      $CHASSISCMD /fabos/link_bin/netstat -an
  fi

  $CHASSISCMD /fabos/link_bin/netstat -i 

  $CHASSISCMD /fabos/link_bin/netstat -s 2> /dev/null

  $CHASSISCMD /fabos/link_bin/netstat -nap

  $CHASSISCMD /bin/cat /proc/net/sockstat
 
  $CHASSISCMD /bin/cat /etc/ipadmd_log.txt*

  pid=`ps -ef | grep "ipadmd" | grep -v "grep" | awk '{print $2}'`
  kill -s USR1 $pid 1>/dev/null 2>&1
  $CHASSISCMD /bin/cat /tmp/ipadm_data.txt
  kill -s USR1 $pid 1>/dev/null 2>&1

  $CHASSISCMD /bin/cat /etc/hosts

  $CHASSISCMD /fabos/link_sbin/ethif --show -tcptimeoutlevel
 
  $ECHO "===========PING STATISTICS==========:"
#  active_cp=`firmwareshow | sed -n '/ACTIVE/s/.*CP\([0-9]*\).*/\1/p'`
   active_cp=`hashow | sed -n '/Active/s/.*CP\([0-9]*\).*/\1/p'`
#  active_cp=`firmwareshow | awk -F" |," '/ACTIVE/ {sub(/[[:alpha:]]*/,"",$5); print $5}'`
  cp_slot=`slotshow | grep CP`
  if [ "$cp_slot" == "" ]; then
	#mini-chassis
	bp_up=$(firmwareshow -v | grep -c "BFOS")
	if [ $bp_up -gt 0 ]; then
	$ECHO "Pinging BP"
	ping -w 1 127.1.10.1
	$ECHO ""
  else
		$ECHO "System has no BP or BP is not yet up"
	fi
  else
	i=0
	slotshow | grep "CP BLADE" | while read line 
	do
		if [ $i == $active_cp ]; then
			cpslot=`$ECHO $line | cut -f1 -d " "`;
			slotshow |  grep -v Slot | grep -v "\-\-\-\-" | grep -v ^$ | grep -v "UNKNOWN" | grep -v "CORE BLADE" | grep -v "SW BLADE" | grep -v "CP BLADE" | 				while read line
			            do
			            	bladeid=`$ECHO $line | cut -f4 -d " "`;
				        	slot=`$ECHO $line | cut -f1 -d " "`;
					        $ECHO "Pinging Slot $slot"
					        let param_3=$cpslot+10
						let param_4=$slot+1
						ping -w 1 127.1.$param_3.$param_4
					        $ECHO ""
			  	    done
										    
		fi
		let i++;
	done
 fi
}

start_port_log_cmd() {
  $ECHO "portlogdump:"
  if [ $nlog_set -eq 1 ]
  then
    $SWITCHCMD /fabos/cliexec/portlogdump $nlog

    # Persistent portlogdump
    $SWITCHCMD /fabos/cliexec/portlogdump $nlog 1
  else
    $SWITCHCMD /fabos/cliexec/portlogdump

    # Persistent portlogdump
    $SWITCHCMD /fabos/cliexec/portlogdump 0,1
  fi

}

do_bladevershow() {
 # Do not run on standby CP.
 if [ $standby = yes ]
 then
	return
 fi

 # If we are running on Saturn, get blade version for all AP blades.
 if [ $sw_platform == 42 ] || [ $sw_platform == 62 ] || [ $sw_platform == 77 ]
 then
    _cmd=`commandPath slotshow`
    ap1=`$_cmd | /bin/grep AP | wc -l`
    if [ $ap1 -gt 0 ]
    then
		for val in `$_cmd | /bin/grep AP | /bin/grep ENABLED | /usr/bin/cut -c1-5`
		do
		    $CHASSISCMD bladevershow $val
		done
	fi
  else
    # Check if we are running on Sprint
	if [ $sw_platform = 46 ] 
	then
	   $CHASSISCMD bladevershow
	fi
  fi 
}

start_system_cmd() {

 # if supportshow is invoked by user, generic data will show in main 
 if [ "$SSAVE" = "TRUE" ]
  then
      $ECHO "Date:"
     /bin/date
      $ECHO ""	
      $ECHO "Time Zone:"
     /fabos/bin/tstimezone
      $ECHO ""
      $ECHO "Version:"	
      version
      $ECHO ""
      $ECHO "supportshow groups enabled" 
	  $CHASSISCMD /fabos/bin/supportShowCfgShow
      $ECHO ""
  fi
  

  # let user know what login session was used
  $SWITCHCMD /fabos/sbin/myid
  _cmd=`commandPath slotshow`

  $CHASSISCMD /sbin/chkconfig

  $CHASSISCMD firmwareshow -v

  $CHASSISCMD /fabos/cliexec/firmwareshow --history

  $CHASSISCMD firmwaredownloadstatus

  $CATFILE /etc/.pd_data

  #version.conf for CP and BP
  $CATFILE /etc/version.conf
  $CATFILE /mnt/etc/version.conf
  
  #CLI history
  $CHASSISCMD /fabos/sbin/clihistory --showall

  $CHASSISCMD /fabos/cliexec/dbgshow

  # 2. uptime()
  $CHASSISCMD /fabos/cliexec/uptime
 

  if [ $standby = no ]
  then

  # 3. switchShow()
  $SWITCHCMD /fabos/bin/switchshow

  # 4. tempshow()
  $CHASSISCMD /fabos/cliexec/tempshow

  # 4b. sensorshow()
  $CHASSISCMD /fabos/cliexec/sensorshow

  # 5. psshow()
  $CHASSISCMD /fabos/cliexec/psshow -v

  # 6. fanshow()
  $CHASSISCMD /fabos/cliexec/fanshow
  fi
  # 7. licenseidshow
  $CHASSISCMD /fabos/cliexec/licenseidshow 2> /dev/null
  /bin/echo ""

  # 7a. license 
  $CHASSISCMD /fabos/link_sbin/license --show 2> /dev/null
  /bin/echo ""

  # 7aa. licenseport
  $CHASSISCMD /fabos/link_sbin/license --show -port 2> /dev/null
  /bin/echo ""

  # 7aaa. lutil
  $CHASSISCMD /fabos/libexec/lutil -f 2> /dev/null
  /bin/echo ""

  # 7ab. license backdoor
  if [ -f /etc/fabos/.licensedisable ]
  then
  /bin/echo "License backdoor is installed"
  else
  /bin/echo "License backdoor is NOT installed"
  fi
  /bin/echo ""

  # 7b. licenses file
  if [ -f /etc/fabos/licenses ]
  then
  $CHASSISCMD /bin/cat -v /etc/fabos/licenses
  fi
  /bin/echo "===================================================================="
  /bin/echo ""

  # 7c. licensedb file
  if [ -f /etc/fabos/licensedb ]
  then
  $CHASSISCMD /bin/cat -v /etc/fabos/licensedb
  fi
  /bin/echo "===================================================================="
  /bin/echo ""

  # 7d. lservrc file
  if [ -f /etc/fabos/lservrc ]
  then
  $CHASSISCMD /bin/cat -v /etc/fabos/lservrc
  fi
  /bin/echo "===================================================================="
  /bin/echo ""

  #7e. License certificates 
  $CHASSISCMD /bin/ls -l /etc/fabos/license_certificates

  # Print /etc/fabos/license_certificates
  certificates="`/bin/ls -d /etc/fabos/license_certificates/*.xml 2> /dev/null;`"
  for certificate in $certificates ; do
      $CHASSISCMD /bin/cat -v $certificate
  done
  /bin/echo "===================================================================="
  /bin/echo ""

# Ray commented out
  # 8.  portFlagsShow()
#   $ECHO "portflagsshow:"
  $CHASSISCMD /fabos/cliexec/portflagsshow
#   $ECHO ""

  $SWITCHCMD /fabos/cliexec/portcfgshow

  # 8b. sfpshow()
  $SWITCHCMD /fabos/cliexec/sfpshow -all -verbose

  $SWITCHCMD /fabos/cliexec/sfpshow -tuning

  # 9. portErrShow()
  $SWITCHCMD /fabos/cliexec/porterrshow

  # belongs in mgt group when we get one
  #$CHASSISCMD /fabos/cliexec/agtcfgshow

  if [ "$SSAVE" = "TRUE" ]; then
      $CHASSISCMD /fabos/libexec/snmpdsupportshow
  fi

  if [ $standby = no ]
  then
  # 10. slotshow()

   $ECHO "slotshow:"
  if [ "$multiBlade" = "TRUE" ]
  then
    $CHASSISCMD /fabos/cliexec/slotshow -m
  fi
  # with the 576 option, it works for all machines
  # and includes all FRU's in inventory
  $CHASSISCMD /fabos/cliexec/slotshow -d576

  $CHASSISCMD /fabos/cliexec/emtraceshow

  $CHASSISCMD /fabos/cliexec/emtraceshow2

  $CHASSISCMD /fabos/cliexec/emhsmtraceshow

  $CHASSISCMD /fabos/cliexec/systraceshow -d

  # 11. chassisshow()
  $CHASSISCMD /fabos/cliexec/chassisshow

  $CHASSISCMD timeout

  # 12. historyshow()
  $CHASSISCMD /fabos/cliexec/historyshow

  # 13. do_bladevershow()
   do_bladevershow
   $ECHO ""
  fi

  $CHASSISCMD /fabos/link_bin/fosconfig --show
   $ECHO "===================================================================="

  # 14. haDump
   $CHASSISCMD /fabos/cliexec/hadump
   $ECHO "===================================================================="

  # 15. creditrecovmode --show
    $CHASSISCMD /fabos/sbin/creditrecovmode --show
   $ECHO "===================================================================="

  # 16. ficonshow rnid - RFE100592 1/11/13
	$SWITCHCMD /fabos/cliexec/ficonshow rnid table
   $ECHO "===================================================================="

   if [ "$SSAVE" = "TRUE" ]; then
  # 17. wwnCardShow ipdata
   $ROOTCMD /fabos/factory/wwnCardShow ipdata
   $ECHO "===================================================================="

  # 18. factoryreset log file
  if [ -f /var/log/factoryreset.log ]
  then
  $CHASSISCMD /bin/cat -v /var/log/factoryreset.log
  fi

  /bin/echo "===================================================================="
  /bin/echo ""
  # last configshow
  #  $CHASSISCMD /fabos/cliexec/configshow -all | /bin/grep -v "authPrivSecret\|usmAuthSecret\|usmPrivSecret\|radius.server.*secret\|tacacs.server.*secret" | /bin/cat
   # the cat at end of pipe avoids more's paging
   /fabos/cliexec/configshow -all | /bin/grep -v "authPrivSecret\|usmAuthSecret\|usmPrivSecret\|radius.server.*secret\|tacacs.server.*secret" > /var/log/configshowall
   $CATFILE_RM /var/log/configshowall

  if [ -f /etc/fabos/fabos.chassis.conf ]
  then
#  $CHASSISCMD /bin/cat -v /etc/fabos/fabos.chassis.conf | /bin/grep -v "radius.server.*secret\|tacacs.server.*secret\|tacacs.server.*.key"
	/bin/cat -v /etc/fabos/fabos.chassis.conf | /bin/grep -v "radius.server.*secret\|tacacs.server.*secret\|tacacs.server.*.key" > /var/log/fabos.chassis.conf
	$CATFILE_RM /var/log/fabos.chassis.conf
  fi
  /bin/echo "===================================================================="
  /bin/echo ""

  # list /var/log dir
  $CHASSISCMD /bin/ls -l /var/log
 fi	

  # lscfg
   if [ $standby = no ] 
   then
       $CHASSISCMD lscfg --show 2>&1
       $CHASSISCMD lscfg --show -ge 2>&1
       $CHASSISCMD lscfg --show -provision 2>&1
   fi

   if [ "$SSAVE" = "TRUE" ]; then
	# Print /var/log/em_logs

       file_no="`ls /var/log/em_logs* 2> /dev/null;`"
       for file in $file_no ; do
	   $CATFILE $file
       done
   fi
}

ficon_print_login_db() {
  CUR_SW_INST=0
  while [ $CUR_SW_INST -le $NUM_SW_INSTANCE ]
  do
	FABID=`lscfg_test --fid $CUR_SW_INST`

	if [ $FABID -ne -1 ]
	then
		setcontext $FABID $CUR_SW_INST

		if [ "$SSAVE" = "TRUE" ]; then
			$ECHO "cat -v /proc/fabos/switch/$CUR_SW_INST/cup"
			$ECHO "CURRENT CONTEXT -- $CUR_SW_INST , $FABID" >> $sshowlog
			$ECHO "CURRENT CONTEXT -- $CUR_SW_INST , $FABID"
#			$ECHO -n . > $TTY
			newline=1
			let cliidx++
			$ECHO "$cliidx $@"  >> $sshowlog
			if [ -r /proc/fabos/switch/$CUR_SW_INST/cup ]
			then
				$ECHO "/proc/fabos/switch/$CUR_SW_INST/cup"     
	    		/bin/cat /proc/fabos/switch/$CUR_SW_INST/cup
				$ECHO ""
			fi
			rc=$?
			if [ $rc -ne 0 ]; then
				$ECHO "** $@: Command:$rc **"  >> $sshowlog
			fi
		else
			$ECHO "cat -v /proc/fabos/switch/$CUR_SW_INST/cup"
		    	$ECHO "CURRENT CONTEXT -- $CUR_SW_INST , $FABID"
			if [ -r /proc/fabos/switch/$CUR_SW_INST/cup ]
			then
				$ECHO "/proc/fabos/switch/$CUR_SW_INST/cup"     
	    		time /bin/cat /proc/fabos/switch/$CUR_SW_INST/cup
				$ECHO ""
			fi
		fi
	fi
	let CUR_SW_INST++
  done
  $ECHO ""
}

start_ficon_cmd() {
  # ficonshow - put ficon cli commands here 
  $SWITCHCMD /fabos/cliexec/ficonshow rnid

  # ficonshow - put ficon cli commands here 
  $SWITCHCMD /fabos/cliexec/ficonshow lirr 

  # ficonshow - put ficon cli commands here 
  $SWITCHCMD /fabos/cliexec/ficonshow rlir

  # ficonshow - put ficon cli commands here 
  $SWITCHCMD /fabos/cliexec/ficonshow ilir

  # ficonshow - put ficon cli commands here 
  $SWITCHCMD /fabos/cliexec/ficonshow switchrnid

  # ficondbg - put ficon cli commands here 
  $SWITCHCMD /fabos/libexec/ficondbg log

  # ficondbg - put ficon cli commands here 
  $SWITCHCMD /fabos/libexec/ficondbg dump rnid

  $SWITCHCMD /fabos/cliexec/ficoncupshow fmsmode

  $SWITCHCMD /fabos/cliexec/ficoncupshow modereg

  $SWITCHCMD /fabos/cliexec/ficucmd dump -A

  ficon_print_login_db
}


start_fcr_port_cmd() {
	#
	#display info by port #port
	#

	if [ "$multiBlade" = "TRUE" ]
	then
		str=$slot/

		if [ "$HOME_VF" = "128" ]
		then
			user_ports=`getUserPortListContext $slot -list`
		else
			user_ports=`getUserPortList $slot -list`
		fi
	else
		str=""
		if [ "$HOME_VF" = "128" ]
		then
			user_ports=`getUserPortListContext 0 -list`
		else
			user_ports=`getUserPortList 0 -list`
		fi
		if [ "$user_ports" == NO_USER_PORTS ]
		then
			return
		fi
	fi

	if [ "$user_ports" != NO_USER_PORTS ]
	then
		num_ports=`$ECHO $user_ports | \
		/usr/bin/wc -w | \
		/usr/bin/tr -s " " " " | \
		/usr/bin/cut -d" " -f2`
		begport=`$ECHO $user_ports | /usr/bin/cut -d" " -f 1`
		endport=`$ECHO $user_ports | /usr/bin/cut -d" " -f $num_ports`
	else
		return
	fi

	if [ "$HOME_VF" = "128" ]
	then
		# When VF is enabled, use each port one at a time because
		# they may not be consecutive in a given logical switch.
		for slotport in $user_ports; do
			$BASESWITCHCMD portcfgexport $str$slotport
		done
	else
		$BASESWITCHCMD portcfgexport $str$begport-$endport
	fi
}

start_iswitch_cmd() {

#  isw_platform=`/sbin/sin 2>/dev/null | /bin/grep SWBD | /usr/bin/cut -d ' ' -f 2 | /usr/bin/cut -c 5-6`
   isw_platform=$( /sbin/sin 2>/dev/null | sed -n 's/^.*SWBD\([^,]*\),.*/\1/p' )
	#FC Routing service not supported in AMP
	if [ $isw_platform == 171 ]
	then
		return
	fi

  if [ $isw_platform == 42 ] || [ $isw_platform == 46 ] || [ $isw_platform == 62 ] || [ $isw_platform == 64 ] || [ $isw_platform == 66 ] || [ $isw_platform == 77 ] || [ $isw_platform == 83 ] || [ $isw_platform == 92 ] || [ $isw_platform == 109 ] || [ $isw_platform == 117 ] || [ $isw_platform == 133 ] || [ $isw_platform == 129 ] || [ $isw_platform == 130 ] || [ $isw_platform == 141 ] || [ $isw_platform == 142 ] || [ $isw_platform == 149 ] || [ $isw_platform == 148 ] || [ $isw_platform == 150 ] || [ $isw_platform == 156 ] || [ $isw_platform == 157 ] || [ $isw_platform == 158 ] || [ $isw_platform == 67 ] || [ $isw_platform == 118 ] || [ $isw_platform == 161 ] || [ $isw_platform == 162 ] || [ $isw_platform == 165 ] || [ $isw_platform == 166 ] || [ $isw_platform == 167 ] || [ $isw_platform == 173 ] || [ $isw_platform == 178 ] || [ $isw_platform == 179 ] || [ $isw_platform == 180 ] || [ $isw_platform == 181 ] || [ $isw_platform == 183 ] || [ $isw_platform == 184 ]
  then
	if [ "$HOME_VF" = "128" ]
	then
		BASE_SW_FID=`lscfg_test --all | grep Base |  sed 's/^[ \t]*[^ \t]*[ \t]*//;s/[ \t].*//;/[0-9]/!d'`
		BASE_SW_INST=`lscfg_test --all | grep Base |  sed 's/^[ \t]*//;s/[ \t].*//;/[0-9]/!d'`
		if [ "$BASE_SW_FID" == "" ];then
			$ECHO "** $@: Command: No base switch available **"
		else
			setcontext $BASE_SW_FID $BASE_SW_INST
		fi
	fi
	all_slots=`getAvailSlots -switchnofault`
    # need to loop over slots and ports for this
    if [ "$multiBlade" = "TRUE" ] && [ "${all_slots-}" != "" ] 
    then
      for a_slot in $all_slots
      do
        slot=$a_slot
        start_fcr_port_cmd
      done
    else
      start_fcr_port_cmd
    fi

    if [ $standby = no ]
    then

      $BASESWITCHCMD fcrconfigure --show

      $BASESWITCHCMD lsanzoneshow -d

      $BASESWITCHCMD fcrproxydevshow -a

      $BASESWITCHCMD fcrproxyconfig

      $BASESWITCHCMD fcrxlateconfig

      $BASESWITCHCMD fcrphydevshow -a

      $BASESWITCHCMD fcrrouteshow

      $BASESWITCHCMD fcrfabricshow

      $BASESWITCHCMD fcrfabricshow --name

      $BASESWITCHCMD fcredgeshow

      $BASESWITCHCMD fcrresourceshow

      $BASESWITCHCMD fcrrouterportcost

      $BASESWITCHCMD fcrlsanmatrix

      $BASESWITCHCMD fcrlsan --show -enforce

      $BASESWITCHCMD fcrlsan --show -speed

      $BASESWITCHCMD fcriclpathbwmonitor --show

    fi

    $BASESWITCHCMD /fabos/cliexec/fcrdbgdevshow

    $BASESWITCHCMD /fabos/cliexec/fcrdbgportshow

    $BASESWITCHCMD /fabos/cliexec/fcrdbgrouteshow

    $BASESWITCHCMD /fabos/cliexec/fcrdbghashow

    $BASESWITCHCMD /fabos/cliexec/fcrdbgportshow --state

    $BASESWITCHCMD /fabos/cliexec/fcrdbgcmds --spm

    $BASESWITCHCMD /fabos/cliexec/fcrdbgcmds --lsdb

    $CHASSISCMD /fabos/cliexec/fcrlogshow 
    $ECHO "----------------"
  fi
}

iscsi_port_() {

  str=$slot/ge
  int_port_st=24

  for port in 0 1 2 3 4 5 6 7
  do
    $CHASSISCMD iscsiportcfg --show $str$port --debug
    $CHASSISCMD /fabos/cliexec/portshow $str$port
    $CHASSISCMD /fabos/cliexec/portshow ipif $str$port
    $CHASSISCMD /fabos/cliexec/portshow iproute $str$port
    $CHASSISCMD /fabos/cliexec/portshow iscsi $str$port
    $CHASSISCMD /fabos/cliexec/portshow arp $str$port
    $CHASSISCMD /fabos/cliexec/portcfgshow $str$port
    $CHASSISCMD /fabos/cliexec/portstatsshow ge $str$port
    $CHASSISCMD ptstatsshow $slot/`expr $port + $int_port_st`
    $CHASSISCMD ptregshow $slot/`expr $port + $int_port_st`
    $CHASSISCMD ptportmap $slot/`expr $port + $int_port_st`
    $CHASSISCMD ptrouteshow $slot/`expr $port + $int_port_st`
    $CHASSISCMD ptbufshow $slot/`expr $port + $int_port_st`
    $CHASSISCMD ptdatashow $slot/`expr $port + $int_port_st`
#    $ECHO "ptfilterportshow $slot/`expr $port + $int_port_st`:"
#    $CHASSISCMD ptfilterportshow $slot/`expr $port + $int_port_st`
#     $ECHO ""

  done
}

start_anvil_cmds() {
	slot=$1
	chip=$2
	ports=28
	fports=16
	eports=12

	#
	# Chip information
	#
	$ECHO Chip Information +++++++++++++++++++++++++++++++++++++++++++++++++
	db $slot/$chip/0 dbg show chip
	db $slot/$chip/0 cfg show chp_cap

	#
	# Stats
	#
	$ECHO Stats Information ++++++++++++++++++++++++++++++++++++++++++++++++
	if test -f /proc/driver/anvil_rev; then
		anvil_rev=`cat /proc/driver/anvil_rev`
		if [ $anvil_rev != "1.0" ]; then
		     $CHASSISCMD db $slot/$chip/0 anv_stats dump stats all
		else
		$CHASSISCMD db $slot/$chip/0 anv_stats dump emac port all
		$CHASSISCMD db $slot/$chip/0 anv_stats dump fmac port all
		$CHASSISCMD db $slot/$chip/0 anv_stats dump dump qmg stats
		$CHASSISCMD db $slot/$chip/0 anv_stats dump dump cfm stats
		$CHASSISCMD db $slot/$chip/0 anv_stats dump dump ets stats
		$CHASSISCMD db $slot/$chip/0 anv_stats dump dump fts stats
		$CHASSISCMD db $slot/$chip/0 anv_stats dump dump psel_mac stats
    		$CHASSISCMD db $slot/$chip/0 anv_stats dump dump psel_tcam stats
		$CHASSISCMD db $slot/$chip/0 anv_stats dump dump psel_l2mpid stats
		$CHASSISCMD db $slot/$chip/0 anv_stats dump dump psel_mpid stats
		$CHASSISCMD db $slot/$chip/0 anv_stats dump dump psel_lgid stats
 		$CHASSISCMD db $slot/$chip/0 anv_stats dump dump psel_l3tcam stats
		fi
	else
		$CHASSISCMD db $slot/$chip/0 anv_stats dump stats all
	fi

	#
	# Trunking Commands;
	#
	$ECHO Trunking Information +++++++++++++++++++++++++++++++++++++++++++++
	$CHASSISCMD db $slot/$chip/0 trunk brcd show
	$CHASSISCMD db $slot/$chip/0 trunk brcd print_ifs

	#
	# FOS RTE Commands
	#
	$ECHO FOS RTE Information ++++++++++++++++++++++++++++++++++++++++++++++
	$CHASSISCMD db $slot/$chip/0 fc_rte show if_ids
	$CHASSISCMD db $slot/$chip/0 fc_rte show egid_table
	$CHASSISCMD db $slot/$chip/0 fc_rte show mcast_egid
	$CHASSISCMD db $slot/$chip/0 fc_rte show ccm_egid

	#
	# CFM Commands
	#
	$ECHO CFM Information ++++++++++++++++++++++++++++++++++++++++++++++++++
	$CHASSISCMD db $slot/$chip/0 cfm utc 17
	$CHASSISCMD db $slot/$chip/0 cfm show e2efrm
	$CHASSISCMD db $slot/$chip/0 cfm show e2eflush
	$CHASSISCMD db $slot/$chip/0 cfm show all
	$CHASSISCMD db $slot/$chip/0 cfm show mem

	#
	# RTE Commands
	#
	$ECHO RTE Information ++++++++++++++++++++++++++++++++++++++++++++++++++
	$CHASSISCMD db $slot/$chip/0 rte show exm l2 summary
	$CHASSISCMD db $slot/$chip/0 rte show exm ipv4 summary
	$CHASSISCMD db $slot/$chip/0 rte show exm ipv6 summary
	$CHASSISCMD db $slot/$chip/0 rte show tcam entry 0x1001 2 -1

	$CHASSISCMD db $slot/$chip/0 rte show l2da tree
	$CHASSISCMD db $slot/$chip/0 rte show l2_lrn

	$CHASSISCMD db $slot/$chip/0 rte show lpm ipv4 204
	$CHASSISCMD db $slot/$chip/0 rte show lpm ipv6 204

	# TR286897: If blade is not faulty, then only run verify rte command.
	# Otherwise we may print too many inconsistent entries taking up whole CPU
	faulty=`/fabos/link_bin/slotshow | grep " 74 " | grep " $slot " | grep FAULTY`
	if [ -z "$faulty" ]
	then
		$CHASSISCMD db $slot/$chip/0 dbg verify rte
	fi

	#
	# DMA Commands
	#
	$ECHO Tx/Rx DMA Information ++++++++++++++++++++++++++++++++++++++++++++
	$CHASSISCMD db $slot/$chip/0 phyp show ports
	$CHASSISCMD db $slot/$chip/0 txrx show hsi
	$CHASSISCMD db $slot/$chip/0 txrx show info 0
	$CHASSISCMD db $slot/$chip/0 txrx dump desc 0
	$CHASSISCMD db $slot/$chip/0 txrx show info 1
	$CHASSISCMD db $slot/$chip/0 txrx dump desc 1
	$CHASSISCMD db $slot/$chip/0 txrx show info 2
	$CHASSISCMD db $slot/$chip/0 txrx dump desc 2
	$CHASSISCMD db $slot/$chip/0 txrx show info 3
	$CHASSISCMD db $slot/$chip/0 txrx dump desc 3
	$CHASSISCMD db $slot/$chip/0 txrx show info 4
	$CHASSISCMD db $slot/$chip/0 txrx dump desc 4
	$CHASSISCMD db $slot/$chip/0 txrx show stats all
	$CHASSISCMD db $slot/$chip/0 txrx show rxcredit
	$CHASSISCMD db $slot/$chip/0 txrx show rxq stats
	$CHASSISCMD db $slot/$chip/0 txrx show txcredit all
	$CHASSISCMD db $slot/$chip/0 txrx show txq all

	#
	# UPSM Commands
	#
	$ECHO UPSM Information +++++++++++++++++++++++++++++++++++++++++++++++++
	$CHASSISCMD db $slot/$chip/0 phyp show ports

	port=0
	while [ $port -lt $ports ]
	do 
		$ECHO PHY PORT $port Information ++++++++++++++++++++++++++++++++++++++++
		$CHASSISCMD db $slot/$chip/0 phyp show ctrl $port
		$CHASSISCMD db $slot/$chip/0 phyp show lli $port
		$CHASSISCMD db $slot/$chip/0 phyp show pcs $port
		$CHASSISCMD db $slot/$chip/0 phyp show cnt $port
		$CHASSISCMD db $slot/$chip/0 phyp show hss $port
		$CHASSISCMD db $slot/$chip/0 phyp show proto $port

		if [ $port -lt $fports ] 
		then
			$CHASSISCMD db $slot/$chip/0 phyp show fpg $port
		else
			$CHASSISCMD db $slot/$chip/0 phyp show epg $port
		fi

		(( port += 1 ))
	done
}

start_zeus_cmds() {
	slot=$1
	chip=$2
	ports=24

	#
	# Stats
	#
	$ECHO Stats Information +++++++++++++++++++++++++++++
	$CHASSISCMD db $slot/$chip/0 dbg show stats

	#
	# Trace
	#
	$ECHO Trace Information +++++++++++++++++++++++++++++
	$CHASSISCMD db $slot/$chip/0 dbg show trace

	#
	# Chip
	#
	$ECHO Chip Information ++++++++++++++++++++++++++++++
	$CHASSISCMD db $slot/$chip/0 dbg show chip

	#
	# lue
	#
	$ECHO LUE Information +++++++++++++++++++++++++++++++
	$CHASSISCMD db $slot/$chip/0 dbg show lue

	#
	# fce
	#
	$ECHO FCE Information +++++++++++++++++++++++++++++++
	$CHASSISCMD db $slot/$chip/0 dbg show fce 0
	$CHASSISCMD db $slot/$chip/0 dbg show fce 1

	#
	# fcd
	#
	$ECHO FCD Information +++++++++++++++++++++++++++++++
	$CHASSISCMD db $slot/$chip/0 dbg show fcd 0
	$CHASSISCMD db $slot/$chip/0 dbg show fcd 1

	#
	# fce
	#
	$ECHO FPG Information +++++++++++++++++++++++++++++++
	$CHASSISCMD db $slot/$chip/0 dbg show fpg 0
	$CHASSISCMD db $slot/$chip/0 dbg show fpg 1

	#
	# fcm
	#
	$ECHO fcm Information +++++++++++++++++++++++++++++++
	$CHASSISCMD db $slot/$chip/0 dbg show fcm 0 0
	$CHASSISCMD db $slot/$chip/0 dbg show fcm 0 1
	$CHASSISCMD db $slot/$chip/0 dbg show fcm 0 2
	$CHASSISCMD db $slot/$chip/0 dbg show fcm 0 3
	$CHASSISCMD db $slot/$chip/0 dbg show fcm 0 0
	$CHASSISCMD db $slot/$chip/0 dbg show fcm 1 1
	$CHASSISCMD db $slot/$chip/0 dbg show fcm 2 2
	$CHASSISCMD db $slot/$chip/0 dbg show fcm 3 3

	#
	# proto
	#
	$ECHO proto Information +++++++++++++++++++++++++++++++
	$CHASSISCMD db $slot/$chip/0 dbg show proto

	#
	# eport
	#
	$ECHO eport Information +++++++++++++++++++++++++++++++
	$CHASSISCMD db $slot/$chip/0 dbg show eport

	#
	# emac
	#
	$ECHO emac Information +++++++++++++++++++++++++++++++
	$CHASSISCMD db $slot/$chip/0 dbg show emac 0
	$CHASSISCMD db $slot/$chip/0 dbg show emac 1

	#
	# emac
	#
	$ECHO flc Information +++++++++++++++++++++++++++++++
	$CHASSISCMD db $slot/$chip/0 dbg show flc 0
	$CHASSISCMD db $slot/$chip/0 dbg show flc 1	

	#
	# ACL
	#
	$ECHO ACL Information +++++++++++++++++++++++++++++++
	$CHASSISCMD db $slot/$chip/0 dbg acl show 0
	$CHASSISCMD db $slot/$chip/0 dbg acl show 1	

}

scimitar_port_() {
	if [ $slot = 0 ]
	then
        $CHASSISCMD ptsupportshow -all
	else
        $CHASSISCMD ptsupportshow $slot -all
	fi
}

xenon_port_() {
  	for k in `seq 0 93`; do
		$CHASSISCMD ptregshow $slot/$k
	done
}

start_iscsi_cmd () {

#don't execute the commands on standby CP
  if [ $standby = yes ]
  then
     $ECHO ""
  	 $ECHO "Executing iscsi cmds on Standby..return"
     $ECHO ""
	return
  fi
#  iscsi_plat=`/sbin/sin 2>/dev/null | /bin/grep SWBD | /usr/bin/cut -d ' ' -f 2 | /usr/bin/cut -c 5-6`
#   iscsi_plat=$( /sbin/sin 2>/dev/null | sed -n 's/^.*SWBD\([^,]*\),.*/\1/p' )
  iscsi_plat=$sw_paltform
  if [ $iscsi_plat == 42 ] || [ $iscsi_plat == 47 ]
  then

    $SWITCHCMD iscsitargetname --show

    $SWITCHCMD iscsisessioncfg --show -v --debug

    $SWITCHCMD iscsicfg --show tgt -v

    $SWITCHCMD iscsicfg --show lun

    $SWITCHCMD iscsicfg --show dd -v

    $SWITCHCMD iscsicfg --show ddset -v

    $SWITCHCMD iscsicfg --show auth

    $SWITCHCMD iscsicfg --show transaction

    $SWITCHCMD iscsicfg --show fabric

    #cause segmentation fault 
    #$ECHO "isnsccfg:"
    #$SWITCHCMD isnsccfg --show 
    #$ECHO ""

    # need to loop over slots and ports for this
	blade=0
    if [ "$multiBlade" = "TRUE" ] && [ "${all_slots-}" != "" ]
    then
      for a_slot in $all_slots
      do
		asic_db_blade_type_ $a_slot

		if [ "$?" -eq 0 ]; then
		    if [ "$blade_type" = "ironman" ]; then
            slot=$a_slot
            iscsi_port_
			blade=1
		    fi
			if [ "$blade_type" = "xenon" ]; then
				slot=$a_slot
				xenon_port_
				blade=1
			fi
		fi
      done
    fi

	if [ $blade -eq 0 ]; then
      $ECHO "No iscsi capable blades in the system"
	fi
 else
      $ECHO "Platform does not support iscsi [Plat: "$iscsi_plat "]"
 fi
}

start_ag_cmd() {
  if [ -f "/etc/fabos/ag_platform.0" ]; then
      $CHASSISCMD /fabos/link_bin/ag --show
      $CHASSISCMD /fabos/link_bin/ag --adsshow
  fi    
}

start_crypto_cmd () {

#don't execute the commands on standby CP
  if [ $standby = yes ]
  then
     $ECHO ""
  	 $ECHO "Executing crypto cmds on Standby..return"
     $ECHO ""
	return
  fi
#  crypto_plat=`/sbin/sin 2>/dev/null | /bin/grep SWBD | /usr/bin/cut -d ' ' -f 2 | /usr/bin/cut -c 5-6`
#   crypto_plat=$( /sbin/sin 2>/dev/null | sed -n 's/^.*SWBD\([^,]*\),.*/\1/p' )
  crypto_plat=$sw_paltform
  if [ $crypto_plat == 62 ] || [ $crypto_plat == 67 ] || [ $crypto_plat == 77 ]
  then

    $SWITCHCMD cryptocfg --show  -groupcfg

    $SWITCHCMD cryptocfg --show -hacluster -all

    $SWITCHCMD cryptocfg --show  -tapepool -all -cfg

    $SWITCHCMD cryptocfg --show -container -all -cfg

    $SWITCHCMD cryptocfg --transshow

    $SWITCHCMD cryptocfg --show  -tapepool -all -stat

    $SWITCHCMD cryptocfg --show -container -all -stat

    $SWITCHCMD cryptocfg --show -rekey -all

    $SWITCHCMD cryptocfg --show -tape_sessions -all

    $SWITCHCMD cryptocfg --show  -localEE

    $SWITCHCMD cryptocfg --show  -groupmember -all

 else
      $ECHO "Platform does not support crypto [Plat: "$crypto_plat "]"
  fi    

 #
  # CHASSIS section
  # FI ports information for Mace
  if [ $sw_platform = 67 ]
  then
	$ECHO ""
	$ECHO "************** Begin Mace FI Port information ****************"
	$ECHO ""

	ob1id=0
	ob1port=0
	for blport in 9 8 14 15 13 12 10 11 19 18 17 16 54 55 53 52 62 63 61 60 58 59 57 56
	do
		$ECHO ""
		$ECHO "OB1:" $ob1id " OB1Port:" $ob1port " BladePort:" $blport
		$ECHO "-----------------------------------"
		$ECHO ""
		$ECHO "CMD: ptstatsshow " $blport
		$ECHO ""
		/fabos/link_rbin/ptstatsshow $blport
		$ECHO ""
		$ECHO "CMD: ptregshow " $blport
		$ECHO ""
		/fabos/link_rbin/ptregshow $blport
		ob1port=`expr $ob1port \+ 1`
		if [ $ob1port -eq 4 ]
		then
			ob1port=0
			ob1id=`expr $ob1id \+ 1`
		fi
	done

	$ECHO ""
	$ECHO "************** End Mace FI Port information ******************"
	$ECHO ""
  fi

  # FI ports information for Lance (bladeid=43)
  if [ $standby = no ]
  then
	for lslot in `/fabos/link_bin/slotshow |  sed -n '/ 43 /s/ *\([^ ]*\).*/\1/p'`
	do
		$ECHO ""
		$ECHO "************** Begin Lance:" $lslot " FI Port information ****************"
		$ECHO ""
	
		ob1id=0
		ob1port=0
		for blport in 9 8 14 15 13 12 10 11 19 18 17 16 54 55 53 52 62 63 61 60 58 59 57 56
		do
			$ECHO ""
			$ECHO "Lance:" $lslot " OB1:" $ob1id " OB1Port:" $ob1port " BladePort:" $blport
			$ECHO "-------------------------------------------"
			$ECHO ""
			$ECHO "CMD: ptstatsshow " $lslot"/"$blport
			$ECHO ""
			/fabos/link_rbin/ptstatsshow $lslot/$blport
			$ECHO ""
			$ECHO "CMD: ptregshow " $lslot"/"$blport
			$ECHO ""
			/fabos/link_rbin/ptregshow $lslot/$blport
			ob1port=`expr $ob1port \+ 1`
			if [ $ob1port -eq 4 ]
			then
				ob1port=0
				ob1id=`expr $ob1id \+ 1`
			fi
		done
	
		$ECHO ""
		$ECHO "************** End Lance:" $lslot " FI Port information ****************"
		$ECHO ""
	done
  fi
}

# Test the blade capability. ( TODO)
# Need to identify if blade support proc-entry based db cmd, and
# Need to identify blade feature capability
# Input: slot#
# Return:  If Ok, blade_type & blade_id is set properly for the slot
# Otherwise, bladeid ==0, and blade_type == ""

asic_db_blade_type_() {

   # initialize to unknown blade id & type
	bladeid=0
	blade_type=""
	num_anvils=0
	num_zeus=0
	num_condors=0
	num_pinballs=0
	num_blaster=0
	num_c2s=0
	num_c3s=0
	num_c4s=0
	num_ge4s=0
	num_c4ps=0
	num_c5s=0

	if test -f /proc/fabos/blade/$1/info; then

		# ref. blade id is defined in linux/include/brocade/swbd.h		
		bladeid=`cat /proc/fabos/blade/$1/info | /bin/grep --binary-files=text bladeId | sed 's/[^0-9]//g'`

      case "$bladeid" in
	  	"21" ) blade_type="icecube";num_condors=1;;
		"25" ) blade_type="blazer2";num_condors=1;;
		"26" ) blade_type="icecube2";num_condors=1;;
		"28" ) blade_type="glacier2";num_condors=1;;
		"34" ) blade_type="dragon";num_condors=1;;
		"49" ) blade_type="superhawk";num_condors=1;;
		"58" ) blade_type="littlebear";num_c2s=1;;
		"60" ) blade_type="bulova";num_c2s=1;;
		"61" ) blade_type="blazer3";num_c2s=1;;
		"63" ) blade_type="superhawk2";num_c2s=1;;
		"64" ) blade_type="utah";num_c2s=1;;
		"70" ) blade_type="falcon2";num_c2s=1;;
		"73" ) blade_type="kestrel2";num_c2s=1;;
		"37" ) blade_type="despina";num_c2s=1;;
		"55" ) blade_type="larissa";num_c2s=2;;
		"51" ) blade_type="triton";num_c2s=2;;
		"46" ) blade_type="hydra";num_c2s=2;;
		"56" ) blade_type="spirit";num_c2s=1;;
		"79" ) blade_type="gladius";num_c2s=1;;
		"59" ) blade_type="tomahawk";num_c2s=1;;
		"53" ) blade_type="thor";num_c2s=9;;
		"52" ) blade_type="proteus";num_c2s=4;;
		"77" ) blade_type="quattro";num_c2s=4;;
		"29" ) blade_type="sprint";num_condors=2;num_pinballs=2;; # sprint
		"27" ) blade_type="viking";num_condors=6;; # viking
		"24" ) blade_type="marathon";num_condors=2;num_pinballs=2;;   # marathon
		"33" ) blade_type="scimitar";num_condors=2;; 
		"38" ) blade_type="sabre";num_condors=2;; 
		"45" ) blade_type="elara";num_c2s=1;num_anvils=3;num_zeus=3;; # Elara
		"74" ) blade_type="europa";num_c2s=1;num_anvils=3;num_zeus=3;;
		"69" ) blade_type="spike";num_c2s=1;num_blaster=1;;
		"75" ) blade_type="striker";num_c2s=1;num_blaster=2;;
		"42" ) blade_type="mace";num_c2s=2;;
		"43" ) blade_type="lance";num_c2s=2;;
		"31" ) blade_type="ironman";num_condors=1;;   # ironman
		"18" ) blade_type="electron";num_condors=2;;   # 32-ports condor
		"16" ) blade_type="neutron";num_condors=2;;  # core condors
		"36" ) blade_type="positron";num_condors=2;;  # 48-ports condor
		"39" ) blade_type="xenon";num_condors=2;;  # xenon
		"96" ) blade_type="thalassa";num_c3s=2;;  # 48-port condor3
		"97" ) blade_type="galatea";num_c3s=2;;  # 32-port condor3
		"98" ) blade_type="neso";num_c3s=4;;  # condor3 core on DCX
		"99" ) blade_type="charon";num_c3s=2;;  # condor3 core on Pluto 
		"100" ) blade_type="stinger";num_c3s=1;;  # condor3 pizzabox
		"123" ) blade_type="dragon2";num_c2s=1;;
		"119" ) blade_type="pharos";num_c3s=1;;  # condor3 embedded
		"129" ) blade_type="pharos_lite";num_c3s=1;;  # condor3 embedded
		"120" ) blade_type="tomtoo";num_c3s=1;; # 24-port condor3 pizzabox
		"125" ) blade_type="galatea8G";num_c3s=2;; #32-port condor3 8g
		"126" ) blade_type="thalassa8G";num_c3s=2;; #48-port condor3 8g
		"137" ) blade_type="odin";num_c3s=6;; # condor3 pizzabox
		"133" ) blade_type="bulova2";num_c3s=1;; # 16G embedded for HP
		"134" ) blade_type="superhawk3";num_c3s=1;; # 16G embedded for Dell
		"155" ) blade_type="kestrel3";num_c3s=1;; # 16G embedded for Hitachi
		"153" ) blade_type="windu";num_c3s=2;; # Windu port blade
		"154" ) blade_type="skybolt";num_c3s=1;num_blitzer=2;; # Skybolt pizzabox
		"156" ) blade_type="falcon3";num_c3s=1;; # 16G embedded for Fujitsu
		"165" ) blade_type="redbird";num_c3s=1;; # Redbird pizzabox
		"166" ) blade_type="graphite";num_c3s=1;; # 16G embedded for HP NewChassis
		"167" ) blade_type="carbon";num_c3s=1;; # 16G embedded for HP NewChassis
		"171" ) blade_type="wedge";num_c4s=1;;  # condor4 pizzabox
		"176" ) blade_type="mundi";num_c4s=2;;  # condor4 core on Venator
		"177" ) blade_type="fisto";num_c4s=4;;  # condor4 core on Allegiance
		"178" ) blade_type="skywalker";num_c4s=2;;  # condor4 port blade
		"185" ) blade_type="shenlong";num_c3s=1;; # 16G embedded for Inspur
		"186" ) blade_type="harpoon";num_c4s=1;num_blitzer=2;;  # condor4 based extension blade
		"190" ) blade_type="chewbacca40";num_ge4s=1;;  # goldeneye4 pizzabox
		"196" ) blade_type="chewbacca";num_ge4s=1;;  # goldeneye4 pizzabox
		"200" ) blade_type="tianlong";num_c3s=1;; # 16G embedded for Inspur
		"201" ) blade_type="wedge_plus";num_c4ps=1;;	# condor4p based pizzabox
		"202" ) blade_type="tyr";num_c4ps=5;;	# condor4p based pizzabox
		"204" ) blade_type="anakin";num_c4ps=2;;	#condor4p based 32-port blade
		"206" ) blade_type="starlynx";num_ge4s=1;;  # goldeneye4 pizzabox
		"213" ) blade_type="a-wing";num_ge4s=1;;	#goldeneye4 extension pizzabox
		"208" ) blade_type="graphite32";num_ge4s=1;;  # goldeneye4 pizzabox
		"209" ) blade_type="carbon32";num_ge4s=1;;  # goldeneye4 pizzabox
		"214" ) blade_type="chirrut";num_c5s=2;;  # Chirrut Gen 7 Slot 4 core blade
		"215" ) blade_type="baze";num_c5s=4;;  # Baze Gen 7 Slot 8 core blade
		"216" ) blade_type="rey";num_c5s=2;;  # Rey Gen 7 port blade
		"217" ) blade_type="cassian";num_c5s=1;;  # Gen 7 pizzabox
		"218" ) blade_type="rey32";num_c5s=2;;  # Rey32 Gen 7 port blade
		"221" ) blade_type="wedge2";num_c5s=1;;  # Gen 6 pizzabox with C5
		"222" ) blade_type="tyr2";num_c5s=6;;	# condor5 based pizza box
		* ) blade_type="others";num_condors=1;; # pulsar/stealth/proton
      esac

	fi
	# return status
	if [ "$blade_type" = "" ]; then
		$ECHO_xx 2> /dev/null;
	else
		$ECHO 2> /dev/null
	fi	
}

#
# This script will issue the commands to get VE port and emulation feature
# info from the DP(s).
# the esmcmd emul call will display the info only if the VE is defined
# and the optional features are enabled on that tunnel. 
#
extn_ve_cmds_() {
	# VE Commands
	$ECHO ""
	$CHASSISCMD	/fabos/rbin/esmcmd dbgcmd fctnl
	$CHASSISCMD	/fabos/rbin/esmcmd dbgcmd fc intf clear
	$CHASSISCMD	/fabos/rbin/esmcmd dbgcmd blzrint all clear
	$CHASSISCMD	/fabos/rbin/esmcmd dbgcmd xtun 0 -vem -cfg -all
	$CHASSISCMD	/fabos/rbin/esmcmd dbgcmd xtun 0 -vem -info
	$CHASSISCMD	/fabos/rbin/esmcmd dbgcmd xtun 0 -vem -stats
	$CHASSISCMD	/fabos/rbin/esmcmd dbgcmd xtun 0 -ficon -info -all
	$CHASSISCMD	/fabos/rbin/esmcmd dbgcmd xtun 0 -ficon -structs
	$CHASSISCMD	/fabos/rbin/esmcmd emul
}

extn_port_show_() {

	harpoonsPresent=0

	isIPEXT=`$SWITCHCMD /fabos/sbin/extncfg --show | grep " IPEXT"`
	isAMP=`$SWITCHCMD /fabos/bin/switchshow | grep switchMode | grep Analytics`
	
	# The "NOT POWERED ON" check will only work with a single harpoon present.
	# Looking for a better solution to cover multiple harpoons.
	harpoonsPresent=`/fabos/link_bin/slotshow -m | grep -v "NOT POWERED ON" | grep -n -c " SX6 "`

	$CHASSISCMD /bin/date
	
	# Ignore MAPS requests until the support save is done. 
	$CHASSISCMD /fabos/rbin/esmcmd cli-exclusive enable
	
	$SWITCHCMD /fabos/sbin/extncfg --show
	$ECHO " "
	
	# Main portshow commands
	$SWITCHCMD	/fabos/cliexec/portshow ipif
	$SWITCHCMD	/fabos/cliexec/portshow iproute
	$SWITCHCMD	/fabos/cliexec/portshow arp
	$CHASSISCMD	/fabos/link_sbin/portcfgge --show
	$SWITCHCMD	/fabos/cliexec/portshow ipsec-policy -i
	$SWITCHCMD	/fabos/cliexec/portshow ipsec-policy -id
	if [ "$isIPEXT" ]; then
		$CHASSISCMD	/fabos/cliexec/portshow tcl
		$CHASSISCMD	/fabos/cliexec/portshow tcl -d
		$SWITCHCMD /fabos/bin/portchannel --show
		$SWITCHCMD /fabos/bin/portchannel --show -detail
	else
		$ECHO 'portshow tcl               : IPEXT not enabled'
		$ECHO 'portshow tcl -d            : IPEXT not enabled'
	fi
	$CHASSISCMD /fabos/cliexec/portshow fciptunnel --hcl-status
	$CHASSISCMD /fabos/cliexec/portshow fciptunnel --all-ls -c --ha --config
	$CHASSISCMD /fabos/cliexec/portshow fciptunnel --all-ls -c
	$CHASSISCMD /fabos/cliexec/portshow fciptunnel --all-ls -c --lifetime
	$CHASSISCMD /fabos/cliexec/portshow fciptunnel --all-ls -c --ha --qos
	$CHASSISCMD /fabos/cliexec/portshow fciptunnel --all-ls -c --ha --qos --lifetime
	$CHASSISCMD /fabos/cliexec/portshow fciptunnel --all-ls -c --perf
	$CHASSISCMD /fabos/cliexec/portshow fciptunnel --all-ls -c --perf --lifetime
	$CHASSISCMD /fabos/cliexec/portshow fciptunnel --all-ls -cd --ha --qos --tcp
	$CHASSISCMD /fabos/cliexec/portshow fciptunnel --all-ls -cd --ha --qos --tcp --lifetime --reset

	# WTool Commands
	$SWITCHCMD /fabos/cliexec/portcmd --wtool all show -d

	# ESM commands
	$CHASSISCMD	/fabos/rbin/esmcmd dump

	cd /proc/fabos/blade
	for slotNum in `ls -d [0-9]* | sort -n` ; do
		asic_db_blade_type_ $slotNum
		if [ "$?" -eq 0 ]; then
			if [ "$blade_type" = "skybolt" ]; then
				$CHASSISCMD /fabos/rbin/esmcmd -dp0 dump
				$CHASSISCMD /fabos/rbin/esmcmd -dp1 dump
			elif [ "$blade_type" = "harpoon" ]; then
				$CHASSISCMD /fabos/rbin/esmcmd -slot $slotNum -dp0 dump
				$CHASSISCMD /fabos/rbin/esmcmd -slot $slotNum -dp1 dump
			elif [ "$blade_type" = "a-wing" ]; then
				$CHASSISCMD /fabos/rbin/esmcmd -dp0 dump
			fi
		fi
	done

	# CLib Debug commands
	$CHASSISCMD	/fabos/rbin/esmcmd dbgcmd ft stats
	$CHASSISCMD	/fabos/rbin/esmcmd dbgcmd cl
	$CHASSISCMD /fabos/rbin/esmcmd dbgcmd clcfg show_stats
	$CHASSISCMD	/fabos/rbin/esmcmd dbgcmd pools
	if [ $sw_platform = 178 ]; then
		$CHASSISCMD	/fabos/rbin/esmcmd dbgcmd auras
	fi
	$CHASSISCMD	/fabos/rbin/esmcmd dbgcmd fc bm
	$CHASSISCMD	/fabos/rbin/esmcmd dbgcmd dram2

	# FTNL Debug commands
	$CHASSISCMD	/fabos/rbin/esmcmd dbgcmd ftnl allx
	$CHASSISCMD	/fabos/rbin/esmcmd dbgcmd ftnl vtm
	$CHASSISCMD	/fabos/rbin/esmcmd dbgcmd ftnl vtm -gerrs

	# TCP Debug commands
	$CHASSISCMD	/fabos/rbin/esmcmd dbgcmd apiconn
	$CHASSISCMD	/fabos/rbin/esmcmd dbgcmd tcpconn -s
	$CHASSISCMD	/fabos/rbin/esmcmd dbgcmd tcpconn
	$CHASSISCMD	/fabos/rbin/esmcmd dbgcmd tcpconn -wan
	$CHASSISCMD	/fabos/rbin/esmcmd dbgcmd tcpconn -e -wan
	$CHASSISCMD	/fabos/rbin/esmcmd dbgcmd tcpconn -h -wan
	$CHASSISCMD	/fabos/rbin/esmcmd dbgcmd tcpconn -h -e -wan
	$CHASSISCMD	/fabos/rbin/esmcmd dbgcmd tcpconn -l -e
	if [ "$isIPEXT" ]
		then
		$CHASSISCMD	/fabos/rbin/esmcmd dbgcmd tcpconn -lan
		$CHASSISCMD	/fabos/rbin/esmcmd dbgcmd tcpconn -e -lan
		$CHASSISCMD	/fabos/rbin/esmcmd dbgcmd tcpconn -h -lan
		$CHASSISCMD	/fabos/rbin/esmcmd dbgcmd tcpconn -h -e -lan
		$CHASSISCMD	/fabos/rbin/esmcmd dbgcmd tcpconn -comov
		$CHASSISCMD	/fabos/rbin/esmcmd dbgcmd tcpconn -e -comov
		$CHASSISCMD	/fabos/rbin/esmcmd dbgcmd tcpconn -h -comov
		$CHASSISCMD	/fabos/rbin/esmcmd dbgcmd tcpconn -h -comov_fail
		$CHASSISCMD	/fabos/rbin/esmcmd dbgcmd tcpconn -h -e -comov
		$CHASSISCMD	/fabos/rbin/esmcmd dbgcmd tcpconn -h -e -comov_fail
		$CHASSISCMD	/fabos/rbin/esmcmd dbgcmd tcpconn -e -dpdp
		$CHASSISCMD	/fabos/rbin/esmcmd dbgcmd tcpconn -l -e -dpdp
		$CHASSISCMD	/fabos/rbin/esmcmd dbgcmd lan_dest_ports
		else
		$ECHO 'esmcmd dbgcmd tcpconn lan/comov: IPEXT not enabled'
	fi
	if [ "$isIPEXT" ]
		then
		$CHASSISCMD /fabos/rbin/esmcmd dbgcmd cmvstats -e
		else 
		$ECHO 'esmcmd dbgcmd cmvstats -e: IPEXT not enabled'
	fi
	# $CHASSISCMD	/fabos/rbin/esmcmd dbgcmd tcpstats
	# $CHASSISCMD	/fabos/rbin/esmcmd dbgcmd tcpstats -t

	# IPAPI debug commands
	$CHASSISCMD	/fabos/rbin/esmcmd dbgcmd ipcache
	$CHASSISCMD	/fabos/rbin/esmcmd dbgcmd ip6cache
	$CHASSISCMD	/fabos/rbin/esmcmd dbgcmd iproute
	$CHASSISCMD	/fabos/rbin/esmcmd dbgcmd ip6route
	$CHASSISCMD	/fabos/rbin/esmcmd dbgcmd arpcache
	$CHASSISCMD	/fabos/rbin/esmcmd dbgcmd nd6cache
	$CHASSISCMD	/fabos/rbin/esmcmd dbgcmd ipstats
	$CHASSISCMD	/fabos/rbin/esmcmd dbgcmd ifa_list
	$CHASSISCMD	/fabos/rbin/esmcmd dbgcmd show_pko_flow

	# ARL debug commands
	$CHASSISCMD	/fabos/rbin/esmcmd dbgcmd arlgroup -v 3
	$CHASSISCMD	/fabos/rbin/esmcmd dbgcmd showarl

	# IPsec debug commands
	$CHASSISCMD	/fabos/rbin/esmcmd dbgcmd ipsecconfig
	$CHASSISCMD	/fabos/rbin/esmcmd dbgcmd ipsecfpga
	$CHASSISCMD	/fabos/rbin/esmcmd dbgcmd ipsecshow -a
	$CHASSISCMD	/fabos/rbin/esmcmd dbgcmd ipsecregs
	$CHASSISCMD	/fabos/rbin/esmcmd dbgcmd ipsecssl
	$CHASSISCMD	/fabos/rbin/esmcmd dbgcmd ipsecglobal
	$CHASSISCMD	/fabos/rbin/esmcmd dbgcmd ipsectrace

	# WAN Tool debug commands
	$CHASSISCMD /fabos/rbin/esmcmd dbgcmd wtst -hash

	# IPTOOL debug commands
	$CHASSISCMD /fabos/rbin/esmcmd dbgcmd pmtud -iapw
	$CHASSISCMD /fabos/rbin/esmcmd dbgcmd pmtud -iptw

	# ACM debug commands
    $CHASSISCMD /fabos/rbin/esmcmd dbgcmd acmcfg
    $CHASSISCMD /fabos/rbin/esmcmd dbgcmd acmstats

	# SkyBolt/Harpoon LSM debug commands
	if [ "$isIPEXT" ]
		then
		$CHASSISCMD /fabos/rbin/esmcmd dbgcmd lsmstats 
		$CHASSISCMD /fabos/rbin/esmcmd dbgcmd lsmconn -v
		$CHASSISCMD /fabos/rbin/esmcmd dbgcmd lsmconn -fhcl -v -pf
		$CHASSISCMD /fabos/rbin/esmcmd dbgcmd lsmconn -s -v -pf
		$CHASSISCMD /fabos/rbin/esmcmd dbgcmd lsmstats -pf -a
		$CHASSISCMD /fabos/rbin/esmcmd dbgcmd lsmstats -g
		$CHASSISCMD	/fabos/rbin/esmcmd dbgcmd udpsock
		$CHASSISCMD	/fabos/rbin/esmcmd dbgcmd ovlan_disp
		# IPEXHCL debug commands
		$CHASSISCMD /fabos/rbin/esmcmd dbgcmd ipmo showmodstats
		$CHASSISCMD /fabos/rbin/esmcmd dbgcmd ipmo show
		$CHASSISCMD /fabos/rbin/esmcmd dbgcmd ipmo vestats all
		$CHASSISCMD /fabos/rbin/esmcmd dbgcmd ipexhcl veo -all
		$CHASSISCMD /fabos/rbin/esmcmd dbgcmd ipexhcl co -v
		#DP-DP
		$CHASSISCMD /fabos/rbin/esmcmd dbgcmd show_ha_ip

		else
		$ECHO 'esmcmd dbgcmd lsmstats       : IPEXT not enabled'
		$ECHO 'esmcmd dbgcmd lsmconn -v     : IPEXT not enabled'
		$ECHO 'esmcmd dbgcmd lsmconn -fhcl -v -pf : IPEXT not enabled'
		$ECHO 'esmcmd dbgcmd lsmconn -s -v -pf : IPEXT not enabled'
		$ECHO 'esmcmd dbgcmd lsmstats -pf -a: IPEXT not enabled'
		$ECHO 'esmcmd dbgcmd lsmstats -g    : IPEXT not enabled'
		$ECHO 'esmcmd dbgcmd udpsock      : IPEXT not enabled'
		$ECHO 'esmcmd dbgcmd ovlan_disp   : IPEXT not enabled'
		$ECHO 'esmcmd dbgcmd ipmo showmodstats :  IPEXT not enabled'
		$ECHO 'esmcmd dbgcmd ipmo show :  IPEXT not enabled'
		$ECHO 'esmcmd dbgcmd ipmo vestats all :  IPEXT not enabled'
		$ECHO 'esmcmd dbgcmd ipexhcl veo -all :  IPEXT not enabled'
		$ECHO 'esmcmd dbgcmd ipexhcl co -v :  IPEXT not enabled'
		$ECHO 'esmcmd dbgcmd show_ha_ip : IPEXT not enabled'
		
	fi

	# VEX/FCR Debug commands
	$CHASSISCMD /fabos/rbin/esmcmd dbgcmd vexdbg
	# ... add additional debug commands here

	if [ $sw_platform = 148 ]; then
		extn_ve_cmds_
	elif [ $sw_platform = 178 ]; then
		extn_ve_cmds_
	elif [ $sw_platform = 165 -o $sw_platform = 166 -o $sw_platform = 179 -o $sw_platform = 180 ]; then
		extn_ve_cmds_
	fi

	cd /proc/fabos/blade
	for slotNum in `ls -d [0-9]* | sort -n` ; do
		asic_db_blade_type_ $slotNum
		if [ "$?" -eq 0 ]; then
			if [ "$blade_type" = "skybolt" ]; then
				# [ Skybolt - do pizzabox port specific commands 
				$ECHO 'PT Reg Data and Stats Show for 1st FCIP chip'
				for tt in `seq 75 96`; do
					$CHASSISCMD ptstatsshow $tt
					$CHASSISCMD ptdatashow $tt
					$CHASSISCMD ptregshow $tt
					$CHASSISCMD ptrouteshow $tt
				done
				$ECHO 'PT Reg Data and Stats Show for 2nd FCIP chip'
				for tt in `seq 97 118`; do
					$CHASSISCMD ptstatsshow $tt
					$CHASSISCMD ptdatashow $tt
					$CHASSISCMD ptregshow $tt
					$CHASSISCMD ptrouteshow $tt
				done
				# Dump SkyBolt GE Port stats
				for k in `seq 0 17`; do
					$SWITCHCMD /fabos/cliexec/portstatsshow ge$k
				done
				for k in `seq 0 17`; do
					$SWITCHCMD /fabos/cliexec/portshow ge$k
				done

				# Dump SkyBolt BCM Back End Port stats
				$CHASSISCMD ptstatsshow	67
				$CHASSISCMD ptstatsshow	68
				$CHASSISCMD ptstatsshow	71
				$CHASSISCMD ptstatsshow	72
				$CHASSISCMD pterrshow
				# ] Skybolt - end of skybolt port specific commands
			elif [ "$blade_type" = "harpoon" ]; then
				# [ Harpoon - do harpoon blade port specific commands 
				# use pt stats and reg show as chassis cmds for
				$ECHO 'PT Stats Data and Regs for 1st FCIP chip'
				for tt in `seq 91 112`; do
					$CHASSISCMD ptstatsshow $slotNum/$tt
					$CHASSISCMD ptdatashow $slotNum/$tt
					$CHASSISCMD ptregshow $slotNum/$tt
					$CHASSISCMD ptrouteshow $slotNum/$tt
				done
				# use pt stats and reg show as chassis cmds for
				# ve ports 26-35
				$ECHO 'PT Stats Data and Regs for 2nd FCIP chip'
				for tt in `seq 113 134`; do
					$CHASSISCMD ptstatsshow $slotNum/$tt
					$CHASSISCMD ptdatashow $slotNum/$tt
					$CHASSISCMD ptregshow $slotNum/$tt
					$CHASSISCMD ptrouteshow $slotNum/$tt
				done
				# Dump Harpoon Blade GE Port stats
				for k in `seq 0 17`; do
					$SWITCHCMD /fabos/cliexec/portstatsshow $slotNum/ge$k
				done
				for k in `seq 0 17`; do
					$SWITCHCMD /fabos/cliexec/portshow $slotNum/ge$k
				done

				# Dump Harpoon blade BCM Back End Port stats
				$CHASSISCMD ptstatsshow	$slotNum/83
				$CHASSISCMD ptstatsshow	$slotNum/84
				$CHASSISCMD ptstatsshow	$slotNum/87
				$CHASSISCMD ptstatsshow	$slotNum/88
				$CHASSISCMD pterrshow	$slotNum
				# ] Harpoon - end of harpoon blade port specific commands
			elif [ "$blade_type" = "a-wing" ]; then
				# [ A-Wing - port specific commands 
				$ECHO 'PT Reg Data and Stats Show for FCIP chip'
				for tt in `seq 56 67`; do
					$CHASSISCMD ptstatsshow $tt
					$CHASSISCMD ptdatashow $tt
					$CHASSISCMD ptregshow $tt
					$CHASSISCMD ptrouteshow $tt
				done

				# Dump A-Wing GE Port stats
				for k in `seq 0 7`; do
					$SWITCHCMD /fabos/cliexec/portstatsshow ge$k
				done
				for k in `seq 0 7`; do
					$SWITCHCMD /fabos/cliexec/portshow ge$k
				done
				# Dump A-Wing BCM Back End Port stats
				$CHASSISCMD ptstatsshow	42
				$CHASSISCMD ptstatsshow	44
				$CHASSISCMD pterrshow
				# ] A-Wing - end of awing port specific commands
			fi
		fi
	done
	# Honor MAPS requests now that we are done. 
	$CHASSISCMD /fabos/rbin/esmcmd cli-exclusive disable

	$CHASSISCMD /bin/date
}

amp_port_show_() {

	isAMP=`$SWITCHCMD /fabos/bin/switchshow | grep switchMode | grep Analytics`

	$CHASSISCMD /bin/date

	# ESM commands
	$CHASSISCMD	/fabos/rbin/esmcmd dump
	$CHASSISCMD /fabos/rbin/esmcmd -dp0 dump
	$CHASSISCMD /fabos/rbin/esmcmd -dp1 dump

	# CLib Debug commands
	$CHASSISCMD	/fabos/rbin/esmcmd dbgcmd ft stats
	$CHASSISCMD	/fabos/rbin/esmcmd dbgcmd cl
	$CHASSISCMD	/fabos/rbin/esmcmd dbgcmd pools
	$CHASSISCMD	/fabos/rbin/esmcmd dbgcmd dram2

	if [ "$isAMP" ]
	then
		$CHASSISCMD /fabos/rbin/esmcmd -dp0 blazer fpl-xmc
		$CHASSISCMD /fabos/rbin/esmcmd dbg0 solo debug_stats
		$CHASSISCMD /fabos/rbin/esmcmd dbg0 solo debug_fw_ver 
		$CHASSISCMD /fabos/rbin/esmcmd dbg0 solo src_clk -show_ltcy
		$CHASSISCMD /fabos/rbin/esmcmd dbg0 solo src_clk -get
		$CHASSISCMD /fabos/rbin/esmcmd dbg0 solo rate_pred -table -short
		$CHASSISCMD /fabos/rbin/esmcmd dbg0 solo dmd_rate -timebase 1sec
		$CHASSISCMD /fabos/rbin/esmcmd dbg0 solo dmd_rate -timebase 5min
		$CHASSISCMD /fabos/rbin/esmcmd dbg0 solo dmd_rate -timebase all
		$CHASSISCMD /fabos/rbin/esmcmd dbg0 solo dmd_rate -timebase gran
		$CHASSISCMD /fabos/rbin/esmcmd dbg0 solo -pin flow_show
		$CHASSISCMD /fabos/rbin/esmcmd dbg0 solo stats
		$CHASSISCMD /fabos/rbin/esmcmd dbg0 solo stats -timebase rt
		$CHASSISCMD /fabos/rbin/esmcmd dbg0 solo stats -timebase 1sec
		$CHASSISCMD /fabos/rbin/esmcmd dbg0 solo stats -timebase 1min
		$CHASSISCMD /fabos/rbin/esmcmd dbg0 solo stats -timebase 5min
		$CHASSISCMD /fabos/rbin/esmcmd dbg0 solo stats -timebase gran
		$CHASSISCMD /fabos/rbin/esmcmd dbg0 solo scsicmd
		$CHASSISCMD /fabos/rbin/esmcmd dbg0 solo scsicmd -timebase rt
		$CHASSISCMD /fabos/rbin/esmcmd dbg0 solo scsicmd -timebase gran
		$CHASSISCMD /fabos/rbin/esmcmd dbg0 solo fabltncy
		$CHASSISCMD /fabos/rbin/esmcmd dbg0 solo fabltncy -timebase rt
		$CHASSISCMD /fabos/rbin/esmcmd dbg0 solo fabltncy -timebase gran
		$CHASSISCMD /fabos/rbin/esmcmd dbg0 solo fabltncy ooo
		$CHASSISCMD /fabos/rbin/esmcmd dbg0 solo fabltncy ooo -timebase rt
		$CHASSISCMD /fabos/rbin/esmcmd dbg0 solo fabltncy ooo -timebase gran
		$CHASSISCMD /fabos/rbin/esmcmd dbg0 solo scsicmd ooo -timebase all
		$CHASSISCMD /fabos/rbin/esmcmd dbg0 solo scsicmd ooo -timebase gran
		$CHASSISCMD /fabos/rbin/esmcmd dbg0 solo ooo
		$CHASSISCMD /fabos/rbin/esmcmd dbg0 solo show_limits 
		$CHASSISCMD /fabos/rbin/esmcmd dbg0 solo resources 
		$CHASSISCMD /fabos/rbin/esmcmd dbg0 solo re-grp-info
		$CHASSISCMD /fabos/rbin/esmcmd dbg0 solo re-rule-info -all
		$CHASSISCMD /fabos/rbin/esmcmd dbg0 solo mp -lu_wwn_hash_table
		$CHASSISCMD /fabos/rbin/esmcmd dbg0 solo mp -global
		$CHASSISCMD /fabos/rbin/esmcmd dbg0 solo it_info 
		$CHASSISCMD /fabos/rbin/esmcmd dbg0 solo mp -flow_debug
		$CHASSISCMD /fabos/rbin/esmcmd dbg0 solo mp -sid "*" -did "*" -lun "*" -info
		$CHASSISCMD /fabos/rbin/esmcmd dbg0 solo timer_stat
		$CHASSISCMD /fabos/rbin/esmcmd dbg0 solo str_dbg_get
        $CHASSISCMD /fabos/rbin/esmcmd dbg0 solo trace info

		$CHASSISCMD /fabos/rbin/esmcmd -dp1 blazer fpl-xmc
		$CHASSISCMD /fabos/rbin/esmcmd dbg1 solo debug_stats
		$CHASSISCMD /fabos/rbin/esmcmd dbg1 solo debug_fw_ver 
		$CHASSISCMD /fabos/rbin/esmcmd dbg1 solo src_clk -show_ltcy
		$CHASSISCMD /fabos/rbin/esmcmd dbg1 solo src_clk -get
		$CHASSISCMD /fabos/rbin/esmcmd dbg1 solo rate_pred -table -short
		$CHASSISCMD /fabos/rbin/esmcmd dbg1 solo dmd_rate -timebase 1sec
		$CHASSISCMD /fabos/rbin/esmcmd dbg1 solo dmd_rate -timebase 5min
		$CHASSISCMD /fabos/rbin/esmcmd dbg1 solo dmd_rate -timebase all
		$CHASSISCMD /fabos/rbin/esmcmd dbg1 solo dmd_rate -timebase gran
		$CHASSISCMD /fabos/rbin/esmcmd dbg1 solo -pin flow_show
		$CHASSISCMD /fabos/rbin/esmcmd dbg1 solo stats
		$CHASSISCMD /fabos/rbin/esmcmd dbg1 solo stats -timebase rt
		$CHASSISCMD /fabos/rbin/esmcmd dbg1 solo stats -timebase 1sec
		$CHASSISCMD /fabos/rbin/esmcmd dbg1 solo stats -timebase 1min
		$CHASSISCMD /fabos/rbin/esmcmd dbg1 solo stats -timebase 5min
		$CHASSISCMD /fabos/rbin/esmcmd dbg1 solo stats -timebase gran
		$CHASSISCMD /fabos/rbin/esmcmd dbg1 solo scsicmd
		$CHASSISCMD /fabos/rbin/esmcmd dbg1 solo scsicmd -timebase rt
		$CHASSISCMD /fabos/rbin/esmcmd dbg1 solo scsicmd -timebase gran
		$CHASSISCMD /fabos/rbin/esmcmd dbg1 solo fabltncy
		$CHASSISCMD /fabos/rbin/esmcmd dbg1 solo fabltncy -timebase rt
		$CHASSISCMD /fabos/rbin/esmcmd dbg1 solo fabltncy -timebase gran
		$CHASSISCMD /fabos/rbin/esmcmd dbg1 solo fabltncy ooo
		$CHASSISCMD /fabos/rbin/esmcmd dbg1 solo fabltncy ooo -timebase rt
		$CHASSISCMD /fabos/rbin/esmcmd dbg1 solo fabltncy ooo -timebase gran
		$CHASSISCMD /fabos/rbin/esmcmd dbg1 solo scsicmd ooo -timebase all
		$CHASSISCMD /fabos/rbin/esmcmd dbg1 solo scsicmd ooo -timebase gran
		$CHASSISCMD /fabos/rbin/esmcmd dbg1 solo ooo
		$CHASSISCMD /fabos/rbin/esmcmd dbg1 solo show_limits 
		$CHASSISCMD /fabos/rbin/esmcmd dbg1 solo resources 
		$CHASSISCMD /fabos/rbin/esmcmd dbg1 solo re-grp-info
		$CHASSISCMD /fabos/rbin/esmcmd dbg1 solo re-rule-info -all
		$CHASSISCMD /fabos/rbin/esmcmd dbg1 solo mp -lu_wwn_hash_table
		$CHASSISCMD /fabos/rbin/esmcmd dbg1 solo mp -global
		$CHASSISCMD /fabos/rbin/esmcmd dbg1 solo it_info 
		$CHASSISCMD /fabos/rbin/esmcmd dbg1 solo mp -flow_debug
		$CHASSISCMD /fabos/rbin/esmcmd dbg1 solo mp -sid "*" -did "*" -lun "*" -info
		$CHASSISCMD /fabos/rbin/esmcmd dbg1 solo timer_stat
		$CHASSISCMD /fabos/rbin/esmcmd dbg1 solo str_dbg_get
        $CHASSISCMD /fabos/rbin/esmcmd dbg1 solo trace info
	fi

	$CHASSISCMD /bin/date
}

start_asic_db_cmd() {

	# Do not dump database on standby CP.
	if [ $standby = yes ]
	then
		return
	fi

  # Capture the error counters across two polling interval.
	$CHASSISCMD sloterrshow -c2 -r
  # Capture the error counters one more time as this is needed per RFE.
	$CHASSISCMD sloterrshow -c2 -r


  # If db script not present, can't dump database
	if [ ! -e /fabos/link_rbin/db ]; then
		return 
	fi

  export DB_SILENT_ERR=1
  cd /proc/fabos/blade
  c5regdmpcnt=0
  c4pregdmpcnt=0
  ge4regdmpcnt=0
  c4regdmpcnt=0
  c3regdmpcnt=0
  c2regdmpcnt=0
  c1regdmpcnt=0
  pbregdmpcnt=0
  pbregdumpindex=0
  blsregdmpcnt=0
  blsregdumpindex=0
  num_anvils=0
  for i in `ls -d [0-9]* | sort -n` ; do
	#
	# no shell cmd should intervene between asic_db_blade_type and 
	# check for return status stored in $?.
	# Note: "db" work on proc path slot#/mini#/chip#
	# This script assumes the following for ALL blade type.
	# The script has to be modified if the assumption becomes false.
    # 1) The following chip assignment per miniswitch
		# chip# = 0 => condor
		# chip# = 1 => pinball
		# chip# = 2 => flipper
	# 2) each mini has only 1 instance of a certain asic.

	# Capture bladeportmap for each blade to aid debugging backend links.

	# Defect 511542: Skip faulty blades with PCI timeout/power issues to avoid kernel panic. 
	faulty_blade=`/fabos/link_bin/slotshow | grep " $i " | grep -n -c -e "FAULTY (90)" -e "FAULTY (28)"`
	if [ $faulty_blade -gt 0 ]; then
		continue
	fi

	$ECHO  +++++++++++++++++ Bladeportmap "$i" ++++++++++++++++++++++++
	$CHASSISCMD /fabos/link_rbin/bladeportmap $i

	asic_db_blade_type_ $i
	if [ "$?" -eq 0 ]; then
		if [ "$blade_type" = "skybolt" ]; then
			$ECHO "Dumping IOCTL usage"
			$ECHO ""
			$ECHO "-------------------"
			$ECHO ""
                $CHASSISCMD db "$i"/0 dbg show ioctl usage
            fi

            #dump seeprom serdes for cassian and rey
            count=0
            if [ "$blade_type" == "rey" ] || [ "$blade_type" == "cassian" ]; then
                while [ $count -lt $num_c5s ] 
                do 
                    $ECHO "SEEPROM SERDES FOR SLOT $i CHIP $count"
                    $ECHO ""
                    $ECHO "-------------------"
                    $ECHO ""
                    $CHASSISCMD db $i/$count dbg show seepromserdes all
                    (( count += 1 ))
                done
            fi

            # Condor 5
            count=0
            while [ $count -lt $num_c5s ] 
            do 
                $ECHO " "
                $ECHO  +++++++++++++++++ Asic Chip "$i"/$count/0 RTE database ++++++++++++++++++++++++
                $CHASSISCMD /fabos/link_rbin/asicswdump -s $i -m $count 
                $CHASSISCMD /fabos/link_rbin/asicswdump -s $i -m $count -g 5
                $CHASSISCMD /fabos/link_rbin/asicswdump -s $i -m $count -g 7
                $CHASSISCMD /fabos/link_rbin/asicswdump -s $i -m $count -g 9
                $ECHO " "
                $ECHO  +++++++++++++++++ Asic Chip "$i"/$count/0 Regdump ++++++++++++++++++++++++
                $CHASSISCMD /fabos/rbin/c5regdump "$i"/$count/0
                if [ -e /var/regdump.dmp ]
                then
                    $ROOTCMD mv /var/regdump.dmp /var/c5regdump.dmp."$i".$count
                    $ROOTCMD $GZIP -f /var/c5regdump.dmp."$i".$count
                    (( c5regdmpcnt += 1 ))
                fi
                (( count += 1 ))
            done

        
            # Condor 4 Plus
            count=0
            while [ $count -lt $num_c4ps ] 
            do 
                $ECHO " "
                $ECHO  +++++++++++++++++ Asic Chip "$i"/$count/0 RTE database ++++++++++++++++++++++++
                $CHASSISCMD /fabos/link_rbin/asicswdump -s $i -m $count 
                $CHASSISCMD /fabos/link_rbin/asicswdump -s $i -m $count -g 5
                $CHASSISCMD /fabos/link_rbin/asicswdump -s $i -m $count -g 7
                $CHASSISCMD /fabos/link_rbin/asicswdump -s $i -m $count -g 9
                $ECHO " "
                $ECHO  +++++++++++++++++ Asic Chip "$i"/$count/0 Regdump ++++++++++++++++++++++++
                $CHASSISCMD /fabos/link_rbin/c4pregdump "$i"/$count/0 
                if [ -e /var/regdump.dmp ]
                then
                    $ROOTCMD mv /var/regdump.dmp /var/c4pregdump.dmp."$i".$count
                    $ROOTCMD $GZIP -f /var/c4pregdump.dmp."$i".$count
                    (( c4pregdmpcnt += 1 ))
                fi
                (( count += 1 ))
            done

            # Goldeneye 4
            count=0
            while [ $count -lt $num_ge4s ] 
            do 
                $ECHO " "
                $ECHO  +++++++++++++++++ Asic Chip "$i"/$count/0 RTE database ++++++++++++++++++++++++
                $CHASSISCMD /fabos/link_rbin/asicswdump -s $i -m $count 
                $CHASSISCMD /fabos/link_rbin/asicswdump -s $i -m $count -g 5
                $CHASSISCMD /fabos/link_rbin/asicswdump -s $i -m $count -g 7
                $ECHO " "
                $ECHO  +++++++++++++++++ Asic Chip "$i"/$count/0 Regdump ++++++++++++++++++++++++
                $CHASSISCMD /fabos/link_rbin/ge4regdump "$i"/$count/0
                if [ -e /var/regdump.dmp ]
                then
                    $ROOTCMD mv /var/regdump.dmp /var/ge4regdump.dmp."$i".$count
                    $ROOTCMD $GZIP -f /var/ge4regdump.dmp."$i".$count
                    (( ge4regdmpcnt += 1 ))
                fi
                (( count += 1 ))
            done

            # Condor 4
            count=0
            while [ $count -lt $num_c4s ] 
            do 
                $ECHO " "
                $ECHO  +++++++++++++++++ Asic Chip "$i"/$count/0 RTE database ++++++++++++++++++++++++
                $CHASSISCMD /fabos/link_rbin/asicswdump -s $i -m $count 
                $CHASSISCMD /fabos/link_rbin/asicswdump -s $i -m $count -g 5
                $CHASSISCMD /fabos/link_rbin/asicswdump -s $i -m $count -g 7
                $CHASSISCMD /fabos/link_rbin/asicswdump -s $i -m $count -g 9
                $ECHO " "
                $ECHO  +++++++++++++++++ Asic Chip "$i"/$count/0 Regdump ++++++++++++++++++++++++
                $CHASSISCMD /fabos/link_rbin/c4regdump "$i"/$count/0
                if [ -e /var/regdump.dmp ]
                then
                    $ROOTCMD mv /var/regdump.dmp /var/c4regdump.dmp."$i".$count
                    $ROOTCMD $GZIP -f /var/c4regdump.dmp."$i".$count
                    (( c4regdmpcnt += 1 ))
                fi
                (( count += 1 ))
            done

            count=0
            while [ $count -lt $num_c3s ] 
            do 
                $ECHO " "
                $ECHO  +++++++++++++++++ Asic Chip "$i"/$count/0 RTE database ++++++++++++++++++++++++
                $CHASSISCMD /fabos/link_rbin/asicswdump -s $i -m $count 
                $CHASSISCMD /fabos/link_rbin/asicswdump -s $i -m $count -g 5
                $CHASSISCMD /fabos/link_rbin/asicswdump -s $i -m $count -g 7
                $CHASSISCMD /fabos/link_rbin/asicswdump -s $i -m $count -g 9
                $ECHO " "
                $ECHO  +++++++++++++++++ Asic Chip "$i"/$count/0 Regdump ++++++++++++++++++++++++
                $CHASSISCMD /fabos/link_rbin/c3regdump "$i"/$count/0
            if [ -e /var/regdump.dmp ]
            then
                $CHASSISCMD mv /var/regdump.dmp /var/c3regdump.dmp."$i".$count
                $CHASSISCMD $GZIP -f /var/c3regdump.dmp."$i".$count
            (( c3regdmpcnt += 1 ))
            fi
            (( count += 1 ))
                
            done

            count=0
            while [ $count -lt $num_c2s ] 
            do 
                $ECHO " "
                if [ "$blade_type" = "mace" -o "$blade_type" = "lance" ]; then
                    $ECHO " "
                    $ECHO  +++++++++++++++++ Mace/Lance "$i"/$count/0 RTE info ++++++++++++++++++++++++
                    $CHASSISCMD /fabos/link_rbin/asicswdump -s $i -m $count -g 0 -f 1
                    for portnum in `seq 0 39`
                    do
                        $ECHO " "
                        $ECHO  +++++++++++++++++ Mace/Lance "$i"/$count/0 RTE port $portnum domain/area/nhop table ++++++++++++++++++++++++
                        $CHASSISCMD /fabos/link_rbin/asicswdump -s $i -m $count -g 0 -f 2 -p $portnum
                    done
                fi
                $ECHO " "
                $ECHO  +++++++++++++++++ Asic Chip "$i"/$count/0 FCR RTE VF STATS dump ++++++++++++++++++++++++
                $CHASSISCMD /fabos/link_rbin/asicswdump -s $i -m $count
                $ECHO " "
                $ECHO  +++++++++++++++++ Asic Chip "$i"/$count/0 Regdump ++++++++++++++++++++++++
                $CHASSISCMD /fabos/link_rbin/c2regdump "$i"/$count/0
                $CHASSISCMD mv /var/regdump.dmp /var/c2regdump.dmp."$i".$count
                $CHASSISCMD $GZIP -f /var/c2regdump.dmp."$i".$count
                (( c2regdmpcnt += 1 ))
                (( count += 1 ))
            done

            count=0
            while [ $count -lt $num_condors ] 
            do 
                $ECHO " "
                $ECHO  +++++++++++++++++ Asic Chip "$i"/$count/0 RTE database ++++++++++++++++++++++++
                $CHASSISCMD /fabos/link_rbin/asicswdump -s $i -m $count 
                $ECHO " "
                $ECHO  +++++++++++++++++ Asic Chip "$i"/$count/0 Regdump ++++++++++++++++++++++++
            (( count += 1 ))
                
        done
            #Striker/Spike Blaster chip.
             count=0
                     while [ $count -lt $num_blaster ]
                 do 
           $ECHO  +++++++++++++++++ Asic Chip "$i"/$count/1 Regdump ++++++++++++++++++++++++
           let blsregdumpindex=$count+1
           $CHASSISCMD /fabos/sbin/blsregdump "$i"/$count/1
           $CHASSISCMD mv /var/regdump.dmp /var/blsregdump.dmp."$i".$blsregdumpindex
           $CHASSISCMD $GZIP -f /var/blsregdump.dmp."$i".$blsregdumpindex
           (( blsregdmpcnt += 1 )) 
                     (( count += 1 ))
            done
        
            # Should only execute "db fcr" if blade is FCR capable
            count=0
            while [ $count -lt $num_pinballs ] 
            do 
                $ECHO " "
                $ECHO  +++++++++++++++++ Asic Chip "$i"/$count/1 FCR database ++++++++++++++++++++++++
                $CHASSISCMD /fabos/link_rbin/asicswdump -s $i -m $count -c 1 -g 1
                $ECHO  +++++++++++++++++ Asic Chip "$i"/$count/0 STATS dump ++++++++++++++++++++++++
                $CHASSISCMD /fabos/link_rbin/asicswdump -s $i -m $count -g 3
                $ECHO " "
                $ECHO  +++++++++++++++++ Asic Chip "$i"/$count/1 Regdump ++++++++++++++++++++++++
            let pbregdumpindex=$count+2
            (( count += 1 ))
            done
            count=0
            anvil=4 # anvi starts at 4 for elara/europa
            while [ $count -lt $num_anvils ] 
            do 
                $ECHO " "
                $ECHO  +++++++++++++++++ Anvil Chip "$i"/$anvil/0 ++++++++++++++++++++++++

                #TR307441: support save timedout error came due to lot of reading
                #proc entries, hence asicswdump utility is added as done for condor
                #pinball etc. To go back to old support_save, uncomment start_anvil_cmds and comment
                #below asicswdump utility code.

                #start_anvil_cmds $i $anvil
                #Dump Anvil Chip stats (Group 4 is DCE_ANVIL and  sub group(f) 1 belongs to chip_stats)
                $CHASSISCMD /fabos/link_rbin/asicswdump -s $i -m $anvil -g 4 -f 1
                $ECHO " "			
                #Dump Anvil Ethernet Port stats (Group 4 is DCE_ANVIL and  sub group(f) 2 belongs to Eport_stats)
                $CHASSISCMD /fabos/link_rbin/asicswdump -s $i -m $anvil -g 4 -f 2
                $ECHO " "
                #Dump Anvil Fabric port stats (Group 4 is DCE_ANVIL and  sub group(f) 3 belongs to Fport_stats)
                $CHASSISCMD /fabos/link_rbin/asicswdump -s $i -m $anvil -g 4 -f 3
                $ECHO " "
                # TR286897: If blade is not faulty, then only run verify rte command.
                # Otherwise we may print too many inconsistent entries taking up whole CPU
                faulty=`/fabos/link_bin/slotshow | grep " 74 " | grep " $i " | grep FAULTY`
                if [ -z "$faulty" ]
                then
                $CHASSISCMD db $i/$anvil/0 dbg verify rte
                fi
                (( count += 1 ))
                (( anvil += 1 ))
            done

            count=0
            zeus=1 # zeus starts at 1 for elara
            while [ $count -lt $num_zeus ]
            do
                $ECHO ""
                $ECHO ++++++++++++ Zeus Chip "$i"/$zeus/0 ++++++++++++++++++
                start_zeus_cmds $i $zeus
                (( count += 1 ))
                (( zeus += 1 ))
            done

            if [ "$blade_type" = "scimitar" -o "$blade_type" = "sabre" ]; then
                slot=$i
                $ECHO " "
                $ECHO  ++++++++++++++ Scimitar/Sabre "$i" +++++++++++++++++++++
                scimitar_port_
            fi
        fi
      done
      unset DB_SILENT_ERR

     if [ "$SSAVE" = "TRUE" ]; then
      # Condor 5
      if [ $c5regdmpcnt -gt 0 ]	
      then
        #
        # Move all C5 reg dumps into a tar ball
        #
        tar -cvPf /tmp/C5REGDUMP.tar /var/c5regdump*gz 2> /dev/null

        /bin/rm /var/c5regdump*gz
        sync
        else
        $ECHO "No condor5 chips on this switch" > /var/c5emptyregdump.txt
        tar -cvf /tmp/C5REGDUMP.tar /var/c5emptyregdump.txt 2> /dev/null
        /bin/rm /var/c5emptyregdump.txt
        sync
      fi

      # Condor 4 Plus
      if [ $c4pregdmpcnt -gt 0 ]	
      then
        #
        # Move all C4 reg dumps into a tar ball
        #
        tar -cvPf /tmp/C4PREGDUMP.tar /var/c4pregdump*gz 2> /dev/null

        /bin/rm /var/c4pregdump*gz
        sync
        else
        $ECHO "No condor4 chips on this switch" > /var/c4pemptyregdump.txt
        tar -cvf /tmp/C4PREGDUMP.tar /var/c4pemptyregdump.txt 2> /dev/null
        /bin/rm /var/c4pemptyregdump.txt
        sync
      fi

      # Goldeneye 4
      if [ $ge4regdmpcnt -gt 0 ]	
      then
        #
        # Move all GE4 reg dumps into a tar ball
        #
        tar -cvPf /tmp/GE4REGDUMP.tar /var/ge4regdump*gz 2> /dev/null

        /bin/rm /var/ge4regdump*gz
        sync
      else
        $ECHO "No goldeneye4 chips on this switch" > /var/ge4emptyregdump.txt
        tar -cvf /tmp/GE4REGDUMP.tar /var/ge4emptyregdump.txt 2> /dev/null
        /bin/rm /var/ge4emptyregdump.txt
        sync
      fi

      # Condor 4
      if [ $c4regdmpcnt -gt 0 ]	
      then
        #
        # Move all C4 reg dumps into a tar ball
        #
        tar -cvPf /tmp/C4REGDUMP.tar /var/c4regdump*gz 2> /dev/null

        /bin/rm /var/c4regdump*gz
        sync
        else
        $ECHO "No condor4 chips on this switch" > /var/c4emptyregdump.txt
        tar -cvf /tmp/C4REGDUMP.tar /var/c4emptyregdump.txt 2> /dev/null
        /bin/rm /var/c4emptyregdump.txt
        sync
      fi

      if [ $c3regdmpcnt -gt 0 ]	
      then
        #
        # Move all C3 reg dumps into a tar ball
        #
        tar -cvPf /tmp/C3REGDUMP.tar /var/c3regdump*gz 2> /dev/null

        /bin/rm /var/c3regdump*gz
        sync
        else
        $ECHO "No condor3 chips on this switch" > /var/c3emptyregdump.txt
        tar -cvf /tmp/C3REGDUMP.tar /var/c3emptyregdump.txt 2> /dev/null
        /bin/rm /var/c3emptyregdump.txt
        sync
      fi

      if [ $c2regdmpcnt -gt 0 ]	
      then
        #
        # Move all C2 reg dumps into a tar ball
        #
        tar -cvPf /tmp/C2REGDUMP.tar /var/c2regdump*gz 2> /dev/null

        /bin/rm /var/c2regdump*gz
        sync
        else
        $ECHO "No condor2 chips on this switch" > /var/c2emptyregdump.txt
        tar -cvf /tmp/C2REGDUMP.tar /var/c2emptyregdump.txt 2> /dev/null
        /bin/rm /var/c2emptyregdump.txt
        sync
      fi

      if [ $c1regdmpcnt -gt 0 ]
      then
        #
        # Move all C1 reg dumps into a tar ball
        #
        /bin/cp /fabos/cliexec/c1hregdecode /var/
        /bin/cp /fabos/cliexec/c1hregcmp /var/

        tar -cvPf /tmp/C1REGDUMP.tar /var/c1regdump*gz /var/c1hregdecode /var/c1hregcmp 2> /dev/null

        /bin/rm /var/c1regdump*gz
        /bin/rm /var/c1hregdecode
        /bin/rm /var/c1hregcmp
        sync
        else
        $ECHO "No condor chips on this switch" > /var/c1emptyregdump.txt
        tar -cvf /tmp/C1REGDUMP.tar /var/c1emptyregdump.txt 2> /dev/null
        /bin/rm /var/c1emptyregdump.txt
        sync
      fi

      if [ $pbregdmpcnt -gt 0 ]
      then
        #
        # Move all pb reg dumps into a tar ball
        #
        /bin/cp /fabos/cliexec/pbhregdecode /var/
        /bin/cp /fabos/cliexec/pbhregcmp /var/

        tar -cvPf /tmp/PBREGDUMP.tar /var/pbregdump*gz /var/pbhregdecode /var/pbhregcmp 2> /dev/null

        /bin/rm /var/pbregdump*gz
        /bin/rm /var/pbhregdecode
        /bin/rm /var/pbhregcmp
        sync
        else
        /bin/echo "No pinball chips on this switch" > /var/pbemptyregdump.txt
        tar -cvf /tmp/PBREGDUMP.tar /var/pbemptyregdump.txt 2> /dev/null
        /bin/rm /var/pbemptyregdump.txt
        sync
      fi

      if [ $blsregdmpcnt -gt 0 ]
      then
        #
        # Move all bls reg dumps into a tar ball
        #
        /bin/cp /fabos/cliexec/blshregdecode /var/
        

        tar -cvPf /tmp/BLSREGDUMP.tar /var/blsregdump*gz /var/blshregdecode  2> /dev/null
        
        /bin/rm /var/blsregdump*gz
        /bin/rm /var/blshregdecode
        sync
        else
        /bin/echo "No blaster chips on this switch" > /var/blsemptyregdump.txt
        tar -cvf /tmp/BLSREGDUMP.tar /var/blsemptyregdump.txt 2> /dev/null
        /bin/rm /var/blsemptyregdump.txt
        sync
      fi

        #
        # Move all Anvil reg dumps into a tar ball
        #
        if [ $num_anvils -ne 0 ]; then
            sync
        else
        $ECHO "No anvil chips on this switch" > /var/avemptyregdump.txt
        sync
        fi
     fi

      # Capture the error counters one more time.
        $CHASSISCMD sloterrshow -c2 -r
      # Capture the error counters one more time as this is needed per RFE.
        $CHASSISCMD sloterrshow -c2 -r

      #Capture portbuffershow output 
        $SWITCHCMD /fabos/cliexec/portbuffershow
    }

    start_fc_port_cmd() {
      if [ $port_on = enabled ]
      then
        #diagshow()
        if [ "$multiBlade" = "TRUE" ]
        then
             $CHASSISCMD diagshow --slot $slot
        else
             $CHASSISCMD diagshow
        fi
      fi

      #
      #display info by port #port
      #
      if [ "$multiBlade" = "TRUE" ]
      then
        str=$slot
      else
        str=""
      fi

      typeset -i option
      let option=0
      #set the reg_ext for condor2 aand GEYE2 platform to 0 so that it does not dump out the redundant portreg info
      asic_db_blade_type_ $slot
      if [ "$?" -eq 0 ]; then
        count=0
        if [ $num_c2s -gt 0 ]; then 
            $CHASSISCMD db $slot/$count/0 dbg set extshow reg 0
            $CHASSISCMD db $slot/$count/0 dbg set extshow filter 0
        fi
      fi

      # make sure we're in the right context for these ports
        if [ "$HOME_VF" != "" ]
        then
            setcontext $FABID $CUR_SW_INST
        fi

      for port in ${user_ports[@]}
      do
        if [ $port -lt $begport ] || [ $port -gt $endport ]
        then
          continue
        fi

        #
        # the portFcPortCmdShow() portcmd will currently
        # have the following options:
        #
        # 0x1 => extend_on is enabled
        # 0x2 => filter_on is enabled
        #
        if [ $extend_on = enabled ]
        then
        let option=$((option | 0x1))
        fi

        if [ $filter_on = enabled ]
        then
        let option=$((option | 0x2))
        fi
        #
        # need to check if port #port is active
        #
        $ECHO portFcPortCmdShow --slot $slot $port $option
        #time
        /fabos/rbin/portFcPortCmdShow --slot $slot $port $option
      done

      # Put the db command back to 1 so that portregshow and ptregshow
      # commands dump out reg information
      asic_db_blade_type_ $slot
      if [ "$?" -eq 0 ]; then
        count=0
        if [ $num_c2s -gt 0 ]; then
            $CHASSISCMD db $slot/$count/0 dbg set extshow reg 1
            $CHASSISCMD db $slot/$count/0 dbg set extshow filter 1
        fi	
      fi

      
      }

    start_amp_cmd() {
    # AMP debug information
      if [ $sw_platform = 171 ] && [ $amp_on = enabled ] && [ $standby = no ]
      then
        $ECHO ""
        $ECHO "************** Begin AMP DP Debug information****************"
        $ECHO ""

        $CHASSISCMD /bin/date
        $ECHO "BD171(AMP) DP debug log collection..."
        amp_port_show_;
        $CHASSISCMD /bin/date
        $ECHO "************** End AMP DP Debug information ******************"

        fi
    }

    start_fcip_cmd() {
    # GE port trace buffer information for marathon and sprint
      if [ $sw_platform = 42 -o $sw_platform = 46 -o $sw_platform = 62 -o $sw_platform = 77 -o $sw_platform = 83 -o $sw_platform = 148 -o $sw_platform = 165 -o $sw_platform = 166 -o $sw_platform = 178 -o $sw_platform = 179 -o $sw_platform = 180 ] && [ $fcip_on = enabled ] && [ $standby = no ]
      then
        $ECHO ""
        $ECHO "************** Begin GigE Port information ****************"
        $ECHO ""

        $CHASSISCMD /bin/date
        if [ $sw_platform = 148 -o $sw_platform = 165 -o $sw_platform = 166 -o $sw_platform = 178 -o $sw_platform = 179 -o $sw_platform = 180 ]
        then
            $ECHO "Extension port dump on Skybolt/Harpoon/A-Wing"
            extn_port_show_;
        fi
        $ECHO ""

        $CHASSISCMD /bin/date
        $ECHO "************** End GigE Port information ******************"

      fi
    }


    start_dce_hsl_cmd() {

        # Do not dump database on standby CP.
        if [ $standby = yes ]
        then
            return
        fi

      # If hsl script not present, can't dump database
        if [ ! -e /fabos/link_sbin/hsl ] || [ ! -e /proc/fabos/hsldebug ]; then
            return 
        fi

        $ECHO " "
        $ECHO  +++++++++++++++++ DCE HSL IFM database start ++++++++++++++++++++
        $CHASSISCMD hsl ifm show all
        $CHASSISCMD hsl ifm show config
        $CHASSISCMD hsl ifm show if all detail
        $CHASSISCMD hsl ifm show vlan all detail
        $CHASSISCMD hsl ifm show stats
        $CHASSISCMD hsl ifm show portmap
        $CHASSISCMD hsl ifm show af l2sys
        $ECHO  +++++++++++++++++ DCE HSL IFM database end ++++++++++++++++++++++
    }


    # Capture debug information of flow cmd

    start_flow_cmd() {

        $ECHO " "
        $ECHO ++++++++++++++++ NETWORK PATROLLER FLOW COMMAND INFO START  +++++++++++++++++
        $SWITCHCMD /fabos/link_sbin/flow --show
        $SWITCHCMD /fabos/link_sbin/flow --debug mirror
        $SWITCHCMD /fabos/link_sbin/flow --debug fg
        $ECHO ++++++++++++++++ NETWORK PATROLLER FLOW COMMAND INFO END  +++++++++++++++++++
    }

    #
    # show all none port related groups
    #
    start_show() {
      # Moved to head of list due to volatility of port log
      if [ $portlog_on = enabled ]
      then
        group_show start_port_log_cmd
      fi

      if [ $os_on = enabled ]
      then    
        group_show start_os_cmd
      fi

      if [ $exception_on = enabled ]
      then
        group_show start_exception_cmd
      fi

      if [ $fabric_on = enabled ]
      then
        group_show start_fc_fabric_cmd
      fi

      if [ $fcoe_on = enabled ]
      then
        group_show start_fcoe_cmd
      fi

      if [ $ucid_on = enabled ]
      then
        group_show start_ucid_cmd
      fi

      if [ $services_on = enabled ]
      then
        group_show start_fc_service_cmd
      fi

      if [ $security_on = enabled ]
      then
        group_show start_security_cmd
      fi

      if [ $network_on = enabled ]
      then
        group_show start_network_cmd
      fi

      if [ $system_on = enabled ]
      then
        group_show start_system_cmd
        if [ "$SSAVE" = "TRUE" ]
        then
        group_show start_enclosure_cmd
        fi
      fi

      if [ $ficon_on = enabled ]
      then
        group_show start_ficon_cmd
      fi

      if [ $iswitch_on = enabled ]
      then
        group_show start_iswitch_cmd
      fi

      #if [ $iscsi_on = enabled ]
      #then
        #group_show start_iscsi_cmd
      #fi
      
      if [ $asic_db_on = enabled ]
      then
          group_show start_asic_db_cmd
      fi

      if [ $ag_on = enabled ]
      then
        group_show start_ag_cmd
      fi

      if [ $dce_hsl_on = enabled ]
      then
        group_show start_dce_hsl_cmd
      fi

      if [ $crypto_on = enabled ]
      then
        group_show start_crypto_cmd
      fi

      if [ $fcip_on = enabled ]
      then
        group_show start_fcip_cmd
      fi

      if [ $amp_on = enabled ]
      then
        group_show start_amp_cmd 
      fi

      if [ $flow_on = enabled ]
      then
       group_show start_flow_cmd
      fi

    }

    #
    # show all port related (port, extended, filter, perfmon groups
    #
    start_port_show()
    {
        parameters_set=0
        #num_parms = ${#parms[@]}
        if [ $# == 3 ]
            then
                slot=$1
                begport=$2
                endport=$3
                parameters_set=1
        fi
        
        if [ $# == 2 ]
            then 
                begport=$1
                endport=$2
                parameters_set=1
        fi
     

        if [ $port_on = enabled -o $extend_on = enabled -o $filter_on = enabled ]
        then
            if [ "$HOME_VF" = "" ]
            then
                $ECHO "Non-VF"
                $ECHO "======================"
                #cmd to dump portaddress 
                $SWITCHCMD  portaddress --show
                CUR_SW_INST=0
                # go ahead to call start_fc_port_cmd for PIZZA BOX
                if [ $slot -ne $def_slot ] && [ "$multiBlade" = "FALSE" ]
                then
                    if [ $parameters_set = 1 ]
                    then
                        #fill up user ports
                        user_ports=()
                        num_ports=$(( endport - begport + 1 ))
                        for i in $(seq $begport $endport)
                        do
                            user_ports=(${user_ports[@]} $i)
                        done
                        firstport=$begport
                        lastport=$endport
                        start_fc_port_cmd
                    else
                        user_ports=`getUserPortList $slot -list`
                        num_ports=`$ECHO $user_ports | \
                                /usr/bin/wc -w | \
                                /usr/bin/tr -s " " " " | \
                                /usr/bin/cut -d" " -f2`
                        firstport=`$ECHO $user_ports | /usr/bin/cut -d" " -f 1`
                        lastport=`$ECHO $user_ports | /usr/bin/cut -d" " -f $num_ports`
                        userports1=$user_ports
                        user_ports=()
                        for z in $userports1
                        do
                            user_ports=(${user_ports[@]} $z)
                        done
                start_fc_port_cmd
                    fi
                else
                    if [ $parameters_set == 0 ]
                    then
                    # Chassis, Loop over all ports on all slots
                    all_slots=`getAvailSlots -switchnofault`
                    for a_slot in $all_slots
                    do
                        #setcontext $FABID
                        slot=$a_slot
                        user_ports=`getUserPortList $slot -list`
                        if [ "$user_ports" != NO_USER_PORTS ]
                        then
                            num_ports=`$ECHO $user_ports | \
                                    /usr/bin/wc -w | \
                                    /usr/bin/tr -s " " " " | \
                                    /usr/bin/cut -d" " -f2`
                            begport=`$ECHO $user_ports | /usr/bin/cut -d" " -f 1`
                            endport=`$ECHO $user_ports | /usr/bin/cut -d" " -f $num_ports`
                            userports1=$user_ports
                            user_ports=()
                            for z in $userports1
                            do
                                user_ports=(${user_ports[@]} $z)
                                done
                                start_fc_port_cmd
                            fi
                        done
                        #o/p fcoe related proc entries for chassis platforms
                        if [ "`isPfmAllegiance`" = TRUE ]
                        then
                            fcoe_port_show
                        fi
                    else
                        #fill up user ports
                        user_ports=()
                        num_ports=$(( endport - begport + 1 ))
                        for i in $(seq $begport $endport)
                        do
                          $ECHO "This is i ---> $i"
                          user_ports=(${user_ports[@]} $i)
                        done
                        firstport=$begport
                        lastport=$endport
                        start_fc_port_cmd
                        #o/p fcoe related proc entries for chassis platforms
                        if [ "`isPfmAllegiance`" = TRUE ]
                        then
                            fcoe_port_show
                        fi
                    fi
                fi
            else
                $ECHO "VF"
                $ECHO "======================"
                #cmd to dump portaddress 
                $SWITCHCMD  portaddress --show
                CUR_SW_INST=0
                while [ $CUR_SW_INST -le $NUM_SW_INSTANCE ]
                do
                    FABID=`lscfg_test --fid $CUR_SW_INST`

                    if [ $FABID -ne -1 ]
                    then
                        setcontext $FABID $CUR_SW_INST
                        
                        if [ "$SSAVE" = "TRUE" ]; then
                            $ECHO "CURRENT CONTEXT -- $CUR_SW_INST , $FABID" >> $sshowlog
                            $ECHO "CURRENT CONTEXT -- $CUR_SW_INST , $FABID"
                        fi

                        # go ahead to call start_fc_port_cmd for PIZZA BOX
                        if [ $slot -ne $def_slot ] && [ "$multiBlade" = "FALSE" ]
                        then
                            if [ $parameters_set = 1 ]
                            then
                                #fill up user ports
                                user_ports=()
                                num_ports=$(( endport - begport + 1 ))
                                for i in $(seq $begport $endport)
                                do
                                    $ECHO "This is i ---> $i"
                                    user_ports=(${user_ports[@]} $i)
                                done
                                firstport=$begport
                                lastport=$endport
                                start_fc_port_cmd

                            else
                                user_ports=`getUserPortListContext $slot -list`
                                num_ports=`$ECHO $user_ports | \
                                        /usr/bin/wc -w | \
                                        /usr/bin/tr -s " " " " | \
                                        /usr/bin/cut -d" " -f2`
                                firstport=`$ECHO $user_ports | /usr/bin/cut -d" " -f 1`
                                lastport=`$ECHO $user_ports | /usr/bin/cut -d" " -f $num_ports`
                                userports1=$user_ports
                                user_ports=()
                                for z in $userports1
                                do
                                   user_ports=(${user_ports[@]} $z)
                                done
                                start_fc_port_cmd
                            fi
                        else
                            if [ $parameters_set = 1 ]
                            then
                                #fill up user ports
                                user_ports=()
                                num_ports=$(( endport - begport + 1 ))
                                for i in $(seq $begport $endport)
                                do
                                    user_ports=(${user_ports[@]} $i)
                                    #user_ports+=($i)
                                done
                                firstport=$begport
                                lastport=$endport
                                start_fc_port_cmd
                                #o/p fcoe related proc entries for chassis platforms
                                if [ "`isPfmAllegiance`" = TRUE ]
                                then
                                    group_show fcoe_port_show
                                fi
                            else
                                # Chassis, Loop over all ports on all slots
                                all_slots=`getAvailSlots -switchnofault`
                                for a_slot in $all_slots
                                do
                                    setcontext $FABID $CUR_SW_INST
                                
                                    slot=$a_slot
                                    user_ports=`getUserPortListContext $slot -list`
                                    if [ "$user_ports" != NO_USER_PORTS ]
                                    then
                                        num_ports=`$ECHO $user_ports | \
                                            /usr/bin/wc -w | \
                                            /usr/bin/tr -s " " " " | \
                                            /usr/bin/cut -d" " -f2`
                                        begport=`$ECHO $user_ports | /usr/bin/cut -d" " -f 1`
                                        endport=`$ECHO $user_ports | /usr/bin/cut -d" " -f $num_ports`
                                        userports1=$user_ports
                                        user_ports=()
                                        for z in $userports1
                                        do
                                            user_ports=(${user_ports[@]} $z)
                                        done
                        start_fc_port_cmd
                                    fi
                                done
                                #o/p fcoe related proc entries for chassis platforms
                                if [ "`isPfmAllegiance`" = TRUE ]
                                then
                                    fcoe_port_show
                                fi
                            fi
                        fi
                    fi
                    let CUR_SW_INST++
                done
            fi
        fi
    }

    init_cfg_variables() {
    #  os_on=uninit;
    #  exception_on=uninit;
    #  port_on=uninit;
    #  fabric_on=uninit;
    #  services_on=uninit;
    #  security_on=uninit;
    #  network_on=uninit;
    #  portlog_on=uninit;
    #  system_on=uninit;
    #  extend_on=uninit;
    #  filter_on=uninit;
    #  ag_on=uninit; 
    #  crypto_on=uninit; 

      cfg_string=""
      cfg=`getConfig $cfg_name $STRING $cfgdefault`
      num=`$ECHO $cfg | /usr/bin/tr "@" " " | /usr/bin/wc -w | /usr/bin/tr -s " " " " | /usr/bin/cut -d" " -f2`
      index=1
      while [ $index -le $num ]
      do
        pair=`$ECHO $cfg | /usr/bin/cut -d"@" -f$index`
        key=`$ECHO $pair | /usr/bin/cut -d":" -f1`
        val=`$ECHO $pair | /usr/bin/cut -d":" -f2`
        if [ $val -eq 1 ]
        then
          state=enabled
          case "$key" in
            "os" ) cfg_string="$cfg_string os";;
            "ex" ) cfg_string="$cfg_string exception";;
            "pt" ) cfg_string="$cfg_string port";;
            "fa" ) cfg_string="$cfg_string fabric";;
            "fc" ) cfg_string="$cfg_string fcoe";;
            "uc" ) cfg_string="$cfg_string ucid";;
            "sr" ) cfg_string="$cfg_string services";;
            "sc" ) cfg_string="$cfg_string security";;
            "nt" ) cfg_string="$cfg_string network";;
            "pl" ) cfg_string="$cfg_string portlog";;
            "sy" ) cfg_string="$cfg_string system";;
            "et" ) cfg_string="$cfg_string extend";;
            "fl" ) cfg_string="$cfg_string filter";;
            "fi" ) cfg_string="$cfg_string ficon";;
            "is" ) cfg_string="$cfg_string iswitch";;
            "iscsi" ) cfg_string="$cfg_string iscsi";;
            "db" ) cfg_string="$cfg_string asic_db";;
            "ip" ) cfg_string="$cfg_string fcip";;
            "amp" ) cfg_string="$cfg_string amp";;
            "ag" ) cfg_string="$cfg_string ag";;
            "crypto" ) cfg_string="$cfg_string crypto";;
            "hsl" ) cfg_string="$cfg_string dce_hsl";;
            * ) $ECHO "Unknown key $pair";;
          esac
        else
          state=disabled
        fi
        case "$key" in
          "os" ) os_on=$state;;
          "ex" ) exception_on=$state;;
          "pt" ) port_on=$state;;
          "fa" ) fabric_on=$state;;
          "fc" ) fcoe_on=$state;;
          "uc" ) ucid_on=$state;;
          "sr" ) services_on=$state;;
          "sc" ) security_on=$state;;
          "nt" ) network_on=$state;;
          "pl" ) portlog_on=$state;;
          "sy" ) system_on=$state;;
          "et" ) extend_on=$state;;
          "fl" ) filter_on=$state;;
          "fi" ) ficon_on=$state;;
          "is" ) iswitch_on=$state;;
          "iscsi" ) iscsi_on=$state;;
          "db" ) asic_db_on=$state;;
          "ip" ) fcip_on=$state;;
          "amp" ) amp_on=$state;;
          "ag" ) ag_on=$state;;
          "crypto" ) crypto_on=$state;;
          "hsl" ) dce_hsl_on=$state;;
          * ) $ECHO "Unknown key $pair";;
        esac
        let index++
      done
      if [ "$cfg_string" = "" ]
      then
        cfg_string=" NONE"
      fi
      export cfg_string
    }


    support_show() {
      #
      # define the syntax based on blade or fixed port products
      #
      if [ "$multiBlade" = "TRUE" ]
      then
        syntax="`/bin/basename $0` slot[/port1-port2]"
      else
        syntax="`/bin/basename $0` [ port1 - port2 ]"
      fi

      #
      # platform-specific values, also could set capabilities here
      #
      internal_port=`/bin/getchassisconfig | \
        /bin/grep "Maximum ports on switch $FABOS_SWITCHNO" | \
        /usr/bin/cut -d":" -f2 | \
        /usr/bin/cut -d" " -f2 | \
        /usr/bin/head -1`

      #
      # Preprocessing command arguments 
      #

      slot=${FABOS_SLOTNO:-$def_slot}

      dashslot_found=0
      permslot_set=0
      permport_set=0
      tempport_set=0
      nlog_set=0

      os_on=disabled;
      exception_on=disabled;
      port_on=disabled;
      fabric_on=disabled;
      fcoe_on=disabled;
      ucid_on=disabled;
      services_on=disabled;
      security_on=disabled;
      network_on=disabled;
      portlog_on=disabled;
      system_on=disabled;
      extend_on=disabled;
      filter_on=disabled;
      iscsi_on=disabled;
      ficon_on=disabled;
      iswitch_on=disabled;
      asic_db_on=disabled;
      fcip_on=disabled;
      amp_on=disabled;
      ag_on=disabled;
      crypto_on=disabled;
      dce_hsl_on=disabled;
      flow_on=disabled;

      runtime_variable=disabled;

      standby=yes;
      # set standby flag
      /fabos/cliexec/hashow -l | /bin/grep ACTIVE > /dev/null 2>&1
      if [ $? -eq 0 ]; then
        standby=no;
      fi

      if [ "$HOME_VF" = "" ]
      then
        $ECHO "Non-VF"
        $ECHO "======================"
        SWITCHCMD="cmd_nonvf"
        CHASSISCMD="cmd_nonvf"
        BASESWITCHCMD="cmd_nonvf"
      else
        $ECHO "VF"
        $ECHO "======================"
        SWITCHCMD="cmd_iterate_all"
        CHASSISCMD="cmd_chassis"
        BASESWITCHCMD="cmd_base_switch"
      fi

      SSCMD="/fabos/cliexec/sscmd"

      for param in $@
      do
        # remove debug switch, if present, processed at top
        if [ "$param" = "--debug" ]
        then
          CHASSISCMD="$ECHO"
          SWITCHCMD="$ECHO"
          BASESWITCHCMD="$ECHO"
          shift
          continue
        fi
        if [ "$param" = "--supportsave" ]
         then
         $ECHO "SupportSave - supportshow $group" >> $sshowlog
         TTY=$(tty)
         if [ "$TTY" = "not a tty" ]
          then
          TTY="/dev/null"
         fi
         SSAVE=TRUE
         if [ "$HOME_VF" != "" ]
         then
            SWITCHCMD="cmd_iterate_all_ss"
         fi
         shift
         continue
        fi

        #
        # if the previous param was "--slot" :
        #
        # 1) we check if the current param is a number.
        # 2) we check if slot/port parameter already set the slot number.
        # 3) we set $slot_num with current parameter if none of the above
        #    condition is met. otherwise we just shift or generate error.
        #
        if [ $dashslot_found -eq 1 ]
        then
          num_matched=`$ECHO $param | /bin/sed 's/[0-9]\{1,\}//'`
          if [ -z $num_matched ]
          then
        if [ $permslot_set -ne 1 ]
        then
          slot=$param
        fi
        dashslot_found=0
        shift
        continue
          else
        $ECHO "Invalid slot number : $param"
        unset_lscfg_test
        exit 3
          fi
        fi

        dashslot_matched=`$ECHO $param | /bin/sed 's/[-]\{1,\}slot//'`
        if [ -z $dashslot_matched ]
        then
          dashslot_found=1
          shift
          continue
        fi

        #
        #
        # permslot_set and permport_set will be set
        # when pattern "slot/port1-port2" is matched
        #
        #
        slotport_matched=`$ECHO $param |\
           /bin/sed 's/[0-9]\{1,\}\/[0-9]\{1,\}\-[0-9]\{1,\}//'`
        if [ -z $slotport_matched ]
        then
          slot=`$ECHO $param | /bin/sed 's/\/[0-9]\{1,\}\-[0-9]\{1,\}//'`
          begport=`$ECHO $param | /bin/sed 's/[0-9]\{1,\}\///'|\
            /bin/sed 's/\-[0-9]\{1,\}//'`
          endport=`$ECHO $param | /bin/sed 's/[0-9]\{1,\}\/[0-9]\{1,\}\-//'`
          permslot_set=1
          permport_set=1
          shift
          continue
        fi

        #
        #
        # tempslot_set will be set
        # when pattern "port1-port2" is matched
        #
        #
        num_matched=`$ECHO $param | /bin/sed 's/[0-9]\{1,\}\-[0-9]\{1,\}//'`
        if [ -z $num_matched ]
        then
          if [ $permport_set -ne 1 ] && [ $tempport_set -ne 1 ]
          then
        begport=`$ECHO $param | /bin/sed 's/\-[0-9]\{1,\}//'`
        endport=`$ECHO $param | /bin/sed 's/[0-9]\{1,\}\-//'`
        tempport_set=1
        shift
        continue
          fi
        fi


        #
        #
        # nlog_set will be set in
        # Pizza box: when the first INDIVIDUAL number is matched;
        #
        # multi blade: when the first number is matched as SLOT_NUMBER
        #          and the second is matched as nlog number.
        #
        #
        if [ "$param"  != "" ]
        then
        group=$param
        case "$param" in
          "os" ) os_on=enabled;runtime_variable=enabled;continue;;
          "exception" ) exception_on=enabled;runtime_variable=enabled;continue;;
          "port" ) port_on=enabled;runtime_variable=enabled;continue;;
          "fabric" ) fabric_on=enabled;runtime_variable=enabled;continue;;
          "fcoe" ) fcoe_on=enabled;runtime_variable=enabled;continue;;
          "ucid" ) ucid_on=enabled;runtime_variable=enabled;continue;;
          "service" ) services_on=enabled;runtime_variable=enabled;continue;;
          "security" ) security_on=enabled;runtime_variable=enabled;continue;;
          "network" ) network_on=enabled;runtime_variable=enabled;continue;;
          "portlog" ) portlog_on=enabled;runtime_variable=enabled;continue;;
          "system" ) system_on=enabled;runtime_variable=enabled;continue;;
          "extend" ) extend_on=enabled;runtime_variable=enabled;continue;;
          "iscsi" ) iscsi_on=enabled;runtime_variable=enabled;continue;;
          "filter" ) filter_on=enabled;runtime_variable=enabled;continue;;
          "ficon" ) ficon_on=enabled;runtime_variable=enabled;continue;;
          "iswitch" ) iswitch_on=enabled;runtime_variable=enabled;continue;;
          "asic_db" ) asic_db_on=enabled;runtime_variable=enabled;continue;;
          "fcip" )    fcip_on=enabled;runtime_variable=enabled;continue;;
          "amp" )    amp_on=enabled;runtime_variable=enabled;continue;;
          "ag" )    ag_on=enabled;runtime_variable=enabled;continue;;
          "crypto" ) crypto_on=enabled;runtime_variable=enabled;continue;;
          "dce_hsl" )  dce_hsl_on=enabled;runtime_variable=enabled;continue;;
          "flow" ) flow_on=enabled;runtime_variable=enabled;continue;;
          "all" )os_on=enabled;
            exception_on=enabled;
            port_on=enabled;
            fabric_on=enabled;
            fcoe_on=enabled;
            ucid_on=enabled;
            services_on=enabled;
            security_on=enabled;
            network_on=enabled;
            portlog_on=enabled;
            system_on=enabled;
            extend_on=enabled;
            filter_on=enabled;
            iscsi_on=enabled;
            ficon_on=enabled;
            iswitch_on=enabled;
            asic_db_on=enabled;
            fcip_on=enabled;
            amp_on=enabled;
            ag_on=enabled;
            crypto_on=enabled;
            dce_hsl_on=enabled;
            flow_on=enabled;	
            runtime_variable=enabled;continue;;
        esac
        fi
        #
        #
        # if nothing fits
        # then it is some junk
        #
        $ECHO "supportshow:  Invalid Syntax"
        $ECHO "Usage: "
        $ECHO -n "	$syntax"
        echo
        unset_lscfg_test
        exit 4

      done

      # if supportshow is invoked by support generic data will be show
      # under os group
      if [ "$SSAVE" = "FALSE" ]
      then
      RUN_COUNT=`/bin/ps exfcl | grep -ic supportshow`
      if [ ${RUN_COUNT} -ge 3 ]
      then
      echo "Supportshow is already running from another connection."
      echo "Please try again later..."
      exit
      fi
      $ECHO "Date:"
      /bin/date
      $ECHO""
      $ECHO "Time Zone:"
      /fabos/bin/tstimezone
      $ECHO""
      $ECHO""
      $ECHO "Version:"
      version
      $ECHO""
      $ECHO "supportshow groups enabled:"
      support_show_cfg_show
      $ECHO""
      fi

      # slot is mandatory for Ulysess
      # but we have to support none-parameter for supportshow
      # in Ulysess
      if [ $slot -eq $def_slot ] && [ "$multiBlade" = "TRUE" ] 
      then
        start_show
        if [ $tempport_set = 1 ]
        then
            start_port_show $begport $endport
        elif [ $permport_set == 1 ]
        then
            start_port_show $slot $begport $endport
        else
            start_port_show
        fi
        end_tail
        unset_lscfg_test
        exit 0
      fi

      #
      #
      # PIZZA BOX section
      # slot must be zero for pizza box products
      #
      if [ $slot -ne $def_slot ] && [ "$multiBlade" = "FALSE" ]
      then
        err "redundant slot number"
        unset_lscfg_test
        exit 4
      fi

      #
      #
      #
      # set port range if it is not set in input
      #
      #
      if [ $tempport_set -ne 1 ] && [ $permport_set -ne 1 ]
      then
        user_ports=`getUserPortList $slot -list`
        num_ports=`$ECHO $user_ports | \
                /usr/bin/wc -w | \
                /usr/bin/tr -s " " " " | \
                /usr/bin/cut -d" " -f2`
        begport=`$ECHO $user_ports | /usr/bin/cut -d" " -f 1`
        endport=`$ECHO $user_ports | /usr/bin/cut -d" " -f $num_ports`
      fi

      #
      #
      # check on port range validity
      #
      #

      user_ports=`getUserPortList $slot -list`
      num_ports=`$ECHO $user_ports | \
                /usr/bin/wc -w | \
                /usr/bin/tr -s " " " " | \
                /usr/bin/cut -d" " -f2`
      firstport=`$ECHO $user_ports | /usr/bin/cut -d" " -f 1`
      lastport=`$ECHO $user_ports | /usr/bin/cut -d" " -f $num_ports`
      
      if [ "$user_ports" != NO_USER_PORTS ]
      then
      if [ $begport -gt $lastport ]
      then
        err "invalid port range: begin port $begport is greater than available $lastport"
        error=TRUE
      fi
      if [ $endport -gt $lastport ]
      then
        err "invalid port range: end port $endport is greater than available $lastport"
        error=TRUE
      fi
      if [ $begport -gt $endport ] 
      then
        err "invalid port range: begin port $begport is greater than end port $endport"
        error=TRUE
      fi
      if [ $begport -lt $firstport ]
      then
        err "invalid port range: begin port $begport is less than available $firstport"
        error=TRUE
      fi
      if [ $endport -lt $firstport ] 
      then
        err "invalid port range: end port $endport is less than available $firstport"
        error=TRUE
      fi
      fi
      if [ "$error" = TRUE ]
      then
          unset_lscfg_test
        exit 4
      fi

      #
      # execute start_show
      #
      start_show
      if [ $permport_set = 1 ]
      then
        start_port_show $slot $begport $endport 
      elif [ $tempport_set = 1 ]
      then
        start_port_show $begport $endport
      else
        start_port_show
      fi

      if [ "$SSAVE" = "FALSE" ]
      then
        group_show start_enclosure_cmd
      fi

      end_tail
    }

    # This function displays fcip option for FCIP Supported Platforms
    support_show_disp_fcip() {

        if [ $sw_platform == 42 ] || [ $sw_platform == 46 ] || [ $sw_platform == 62 ] || [ $sw_platform == 77 ] || [ $sw_platform == 83 ]
        then
          $ECHO " fcip"
        else
          $ECHO " "
        fi
    }

    # This function displays amp option for AMP Supported Platforms
    support_show_disp_amp() {

        if [ $sw_platform == 171 ]
        then
          $ECHO " amp"
        else
          $ECHO " "
        fi
    }

    support_show_disp_iscsi() {
        if [ $sw_platform == 42 ] || [ $sw_platform == 47 ]
        then
          $ECHO " iscsi"
        else
          $ECHO " "
        fi
    }
    # This function displays crypto option for Supported Platforms
    support_show_disp_crypto() {
        if [ $sw_platform == 62 ] || [ $sw_platform == 67 ] || [ $sw_platform == 77 ]
        then
            $ECHO " crypto"
        else
            $ECHO " "
        fi
    }
    support_show_cfg_show() {

       if [ "$runtime_variable" = disabled ]
       then
         init_cfg_variables
       fi

      $ECHO " os         $os_on"
      $ECHO " exception  $exception_on"
      $ECHO " port       $port_on"
      $ECHO " fabric     $fabric_on"
      $ECHO " services   $services_on"
      $ECHO " security   $security_on"
      $ECHO " network    $network_on"
      $ECHO " portlog    $portlog_on"
      $ECHO " system     $system_on"
      $ECHO " extend     $extend_on"
      $ECHO " filter     $filter_on"
      $ECHO " ficon      $ficon_on"
      $ECHO " iswitch    $iswitch_on"
      $ECHO " asic_db    $asic_db_on"
      if [ $sw_platform == 42 ] || [ $sw_platform == 46 ] || [ $sw_platform == 62 ] || [ $sw_platform == 77 ] || [ $sw_platform == 83 ] || [ $sw_platform == 148 ] || [ $sw_platform == 165 ] || [ $sw_platform == 166 ] || [ $sw_platform == 178 -o $sw_platform = 179 -o $sw_platform = 180 ]
      then
        $ECHO " fcip       $fcip_on"
      else
        $ECHO " fcip       disabled (not applicable to this platform)"
      fi

      if [ $sw_platform == 171 ]
      then
        $ECHO " amp        $amp_on"
      else
        $ECHO " amp        disabled (not applicable to this platform)"
      fi

      $ECHO " ag         $ag_on"
      $ECHO " dce_hsl    $dce_hsl_on"
      if [ $sw_platform == 62 ] || [ $sw_platform == 67 ] || [ $sw_platform == 77 ]
      then
        $ECHO " crypto     $crypto_on"
      fi
      if [ $sw_platform == 165 ] || [ $sw_platform == 166 ] || [ $sw_platform == 179 ] || [ $sw_platform == 180 ] || [ $sw_platform == 181 ];
      then
        $ECHO " fcoe       $fcoe_on"
        $ECHO " ucid       $ucid_on"
      else
        $ECHO " fcoe       disabled (not applicable to this platform)"
        $ECHO " ucid       disabled (not applicable to this platform)"
      fi

    }
    supportshowcfgshow_error_msg() {
        $ECHO "Command groups:"
        $ECHO -n "os exception port fabric services security network portlog system extend filter ficon iswitch asic_db ag dce_hsl"
        support_show_disp_crypto
        support_show_disp_iscsi
        support_show_disp_fcip
        support_show_disp_amp
        
        unset_lscfg_test
        exit 3
    }
    support_show_cfg_enable() {
      if [ "$1" = "" ]
      then
        $ECHO "Unknown parameter: $1"
        supportshowcfgshow_error_msg
      fi
      while [ "$1" ]
      do
        case "$1" in
        "os" )        sub="os:1";search="os";;
        "exception" ) sub="ex:1";search="ex";;
        "port" )      sub="pt:1";search="pt";;
        "fabric" )    sub="fa:1";search="fa";;
        "services" )  sub="sr:1";search="sr";;
        "security" )  sub="sc:1";search="sc";;
        "network" )   sub="nt:1";search="nt";;
        "portlog" )   sub="pl:1";search="pl";;
        "system" )    sub="sy:1";search="sy";;
        "extend" )    sub="et:1";search="et";;
        "filter" )    sub="fl:1";search="fl";;
        "ficon" )     sub="fi:1";search="fi";;
        "iswitch" )   sub="is:1";search="is";;
        "asic_db" )   sub="db:1";search="db";;
        "fcip" )  
            if [ $sw_platform == 42 ] || [ $sw_platform == 46 ] || [ $sw_platform == 62 ] || [ $sw_platform == 77 ] || [ $sw_platform == 83 ] || [ $sw_platform == 148 ]
            then
                sub="ip:1";search="ip"
            else
                $ECHO "Unknown parameter: $1"
                supportshowcfgshow_error_msg
            fi;;
        "ucid" )
            if [ $sw_platform == 165 ] || [ $sw_platform == 166 ] || [ $sw_platform == 179 ] || [ $sw_platform == 180 ] || [ $sw_platform == 181 ]
            then
                sub="uc:1";search="uc"
            else
                $ECHO "Unknown parameter: $1"
                supportshowcfgshow_error_msg
            fi;;
        "fcoe" )
            if [ $sw_platform == 165 ] || [ $sw_platform == 166 ] || [ $sw_platform == 179 ] || [ $sw_platform == 180 ] || [ $sw_platform == 181 ]
            then
                sub="fc:1";search="fc"
            else
                $ECHO "Unknown parameter: $1"
                supportshowcfgshow_error_msg
            fi;;
        "amp" )  
            if [ $sw_platform == 171 ]
            then
                sub="amp:1";search="amp"
            else
                $ECHO "Unknown parameter: $1"
                supportshowcfgshow_error_msg
            fi;;
        "iscsi" )
            if [ $sw_platform == 42 ] || [ $sw_platform == 47 ]
            then
                sub="iscsi:1";search="iscsi"
            else
                $ECHO "Unknown parameter: $1"
                supportshowcfgshow_error_msg
            fi;;
        "ag" )        sub="ag:1";search="ag";;
        "crypto" )
            if [ $sw_platform == 62 ] || [ $sw_platform == 67 ] || [ $sw_platform == 77 ]
            then
                sub="crypto:1";search="crypto"
            else
                $ECHO "Unknown parameter: $1"
                supportshowcfgshow_error_msg
            fi;;
        "dce_hsl" )   sub="hsl:1";search="hsl";;
        * ) $ECHO "supportshowcfgenable:  unrecognized option $1"
            $ECHO "Usage:"
            $ECHO -n "	supportshowcfgenable [ command_group_name ]"
            echo 
            supportshowcfgshow_error_msg
        esac
        cfg=`getConfig $cfg_name $STRING $cfgdefault`
        match_cfg=`$ECHO $cfg | /bin/grep "$search"`
        if [ "$match_cfg" != "" ]
        then
          new_cfg=`$ECHO $cfg | /bin/sed "s/$search:[01]/$sub/g"`
        else
          new_cfg="${cfg}@${sub}"
        fi
        setConfig $cfg_name $STRING "$new_cfg"
        shift
      done
      updateConfig
    }


    support_show_cfg_disable() {
      if [ "$1" = "" ]
      then
        $ECHO "Unknown parameter: $1"
        supportshowcfgshow_error_msg
      fi
      while [ "$1" ]
      do
        case "$1" in
        "os" )        sub="os:0";search="os";;
        "exception" ) sub="ex:0";search="ex";;
        "port" )      sub="pt:0";search="pt";;
        "fabric" )    sub="fa:0";search="fa";;
        "services" )  sub="sr:0";search="sr";;
        "security" )  sub="sc:0";search="sc";;
        "network" )   sub="nt:0";search="nt";;
        "portlog" )   sub="pl:0";search="pl";;
        "system" )    sub="sy:0";search="sy";;
        "extend" )    sub="et:0";search="et";;
        "filter" )    sub="fl:0";search="fl";;
        "ficon" )     sub="fi:0";search="fi";;
        "iswitch" )   sub="is:0";search="is";;
        "asic_db" )   sub="db:0";search="db";;
        "fcip" )
        if [ $sw_platform == 42 ] || [ $sw_platform == 46 ] || [ $sw_platform == 62 ] || [ $sw_platform == 77 ] || [ $sw_platform == 83 ] || [ $sw_platform == 148 ]
        then
            sub="ip:0";search="ip"
        else
            $ECHO "Unknown parameter: $1"
            supportshowcfgshow_error_msg
        fi;;
        "ucid" )
        if [ $sw_platform == 165 ] || [ $sw_platform == 166 ] || [ $sw_platform == 179 ] || [ $sw_platform == 180 ] || [ $sw_platform == 181 ]
        then
            sub="uc:0";search="uc"
        else
            $ECHO "Unknown parameter: $1"
            supportshowcfgshow_error_msg
        fi;;
        "fcoe" )
        if [ $sw_platform == 165 ] || [ $sw_platform == 166 ] || [ $sw_platform == 179 ] || [ $sw_platform == 180 ] || [ $sw_platform == 181 ]
        then
            sub="fc:0";search="fc"
        else
            $ECHO "Unknown parameter: $1"
            supportshowcfgshow_error_msg
        fi;;
        "amp" )
        if [ $sw_platform == 171 ]
        then
            sub="amp:0";search="amp"
        else
            $ECHO "Unknown parameter: $1"
            supportshowcfgshow_error_msg
        fi;;
        "ag" )        sub="ag:0";search="ag";;
        "crypto" )
        if [ $sw_platform == 62 ] || [ $sw_platform == 67 ] || [ $sw_platform == 77 ]
        then
            sub="crypto:0";search="crypto"
        else
            $ECHO "Unknown parameter: $1"
            supportshowcfgshow_error_msg
        fi;;
        "dce_hsl" )   sub="hsl:0";search="hsl";;
        * ) $ECHO "supportshowcfgdisable:  unrecognized option $1"
            $ECHO "Usage:"
            $ECHO -n "	supportshowcfgdisable [ command_group_name ]"
            echo 
            supportshowcfgshow_error_msg
        esac
        cfg=`getConfig $cfg_name $STRING $cfgdefault`
        match_cfg=`$ECHO $cfg | /bin/grep "$search"`
        if [ "$match_cfg" != "" ]
        then
          new_cfg=`$ECHO $cfg | /bin/sed "s/$search:[01]/$sub/g"`
        else
          new_cfg="${cfg}@${sub}"
        fi
        setConfig $cfg_name $STRING "$new_cfg"
        shift
      done
      updateConfig
    }
    start_enclosure_cmd() { 

        # Get the information used by embedded products to describe
        # the enclosure
        enc_model=`enclosureShow modelname`
        enc_id=`enclosureShow id`
        enc_slotid=`enclosureShow slotid`

        # If there is no model name, expect a string like:
        #     "unable to display enclosure model information"
        #
        # Also, in some future releases, the string might be improved to
        # look like:
        #     "command not supported"
        #
        # so handle this as well.
        #
        # This next step tests for the words "unable" or "not supported"
        # and if it is found then blank out the string using
        # bash string replacement
        #
        enc_model=${enc_model/*unable*/}
        enc_model=${enc_model/*not supported*/}

        enc_id=${enc_id/*unable*/}
        enc_id=${enc_id/*not supported*/}

        enc_slotid=${enc_slotid/*unable*/}
        enc_slotid=${enc_slotid/*not supported*/}

        if [ -n "$enc_model" ]
        then
            enc_model=`$ECHO MODEL $enc_model`
        fi

        if [ -n "$enc_id" ]
        then
            enc_id=`$ECHO UNIT ID $enc_id`
        fi

        if [ -n "$enc_slotid" ]
        then
            enc_slotid=`$ECHO LOCATION $enc_slotid`
        fi

        if [ -n "$enc_model" ] || [ -n "$enc_id" ] || [ -n "$enc_slotid" ]
        then
            $ECHO "ENCLOSURE INFO:" $enc_model $enc_id $enc_slotid
            $ECHO ""
        fi
    }

    #################################################
    #
    # Start main body of script
    #
    #################################################

    def_slot=0
    cfg_name="diag.script.supportshow.config"
    cfgdefault="os:1@ex:1@pt:1@fa:1@fc:1@uc:1@sr:1@sc:1@nt:1@pl:1@sy:1@et:0@fl:0@fi:0@is:1@db:1@ip:1@iscsi:1@ag:1@crypto:0@hsl:1"
    runtime_variable=disabled;
    #sw_platform=`/sbin/sin 2>/dev/null | /bin/grep SWBD | /usr/bin/cut -d ' ' -f 2 | /usr/bin/cut -c 5-6`
    sw_platform=$( /sbin/sin 2>/dev/null | /bin/sed -n 's/^.*SWBD\([^,]*\),.*/\1/p' )
    #
    #
    # Load library -- must be first.
    #
    #
    home="/fabos/share"
    util="diagcommon.sh"
    ok=0
    for f in "./$util" "$FABOSHOME/share/$util" "$home/$util"
    do
      if [ -r $f ]
      then
        . $f
        ok=1
        break;
      fi
    done
    if [ $ok -ne 1 ]
    then
      $ECHO "Error -- could not locate $util"
      exit 3
    fi

    multiBlade=`isMultiBlade`

    # turn off interactive mode for diag commands
    DIAG_POST=1
    export DIAG_POST

    cmd_name=`/bin/basename $0 | /usr/bin/tr "A-Z" "a-z"`


    export PATH=/fabos/link_bin:/bin:/usr/bin:/sbin:/usr/sbin:/fabos/link_abin:/fabos/link_sbin:/fabos/link_rbin:/fabos/factory:/fabos/xtool

    FABOS_OFF="FALSE"
    /fabos/rbin/chkconfig | grep "fabos " | grep off > /dev/null 2>&1
    if [ $? -eq 0 ]; then
        FABOS_OFF="TRUE"
    fi

    if [ ! -e /dev/raslog ]; then
        FABOS_OFF="TRUE"
    fi

    isWM=no
    if [ -e /dev/wm_dumper ]; then
        isWM=yes;
    fi

    set_lscfg_test

    #NUM_SW_INSTANCE=$(lscfg_test --all  | awk '/Total/ {print $5}')
    if [ "$(lscfg_test --vf_enabled 2> /dev/null)" = 'VF is enabled.' ]; then
        NUM_SW_INSTANCE=`lscfg_test --max`
        HOME_VF=128
        export HOME_VF
    else
        HOME_VF=
        export HOME_VF
    fi

    case $cmd_name in
      "supportshow" ) support_show $*;;
      "supportshowcfgshow" ) support_show_cfg_show $*;;
      "supportshowcfgenable" ) support_show_cfg_enable $*;;
      "supportshowcfgdisable" ) support_show_cfg_disable $*;;
esac
