#!/bin/sh 
#
#
#    Copyright (c) 1996-2011 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
cliidx=0
newline=0
sshowlog=/var/log/sshow.log
cpslot=0
IPTABLES_RULES_CORRUPTION_FIX=1
# Check RBAC permission on command
/fabos/libexec/rbac_check `/bin/basename $0`

if [ $? -ne 0 ]; then
    exit 127
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

#
# debug routine to show time for each CLI
#
#
cmd_nonvf() {
 if [ "$SSAVE" = "TRUE" ]; then
	$ECHO -n . > $TTY
	newline=1
     #$ECHO  "$@:" > $TTY
     let cliidx++
     $ECHO "$cliidx $@"  >> $sshowlog
	 sync
     clicmd=${1##*/}
     $ECHO -e "$clicmd $2 $3 $4 $5 $6 $7 $8 $9:"
     time $@
     rc=$?
     if [ $rc -ne 0 ]; then
	$ECHO "** $@: Command:$rc **" >> $sshowlog
     fi
 else
     clicmd=${1##*/}
     $ECHO -e "$clicmd $2 $3 $4 $5 $6 $7 $8 $9:"
     $@
 fi
  $ECHO ""
}

cmd_chassis() {
  setcontext chassis
  if [ "$SSAVE" = "TRUE" ]; then	
	$ECHO -n . > $TTY
	newline=1
    #$ECHO  "$@:" > $TTY
    let cliidx++
    $ECHO "$cliidx $@" >> $sshowlog
	sync
    clicmd=${1##*/}
    $ECHO -e "$clicmd $2 $3 $4 $5 $6 $7 $8 $9:"
    time $@
    rc=$?
    if [ $rc -ne 0 ]; then
      $ECHO "** $@: Command:$rc **" >> $sshowlog
    fi
  else
    clicmd=${1##*/}
    $ECHO -e "$clicmd $2 $3 $4 $5 $6 $7 $8 $9:"
    $@
  fi
  $ECHO ""	
}

#
# 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() {
	$SSCMD $@ "--sscommand=3" -l$sshowlog -a -i$TTY
	newline=1
}
cmd_base_switch() {
  if [ "$SSAVE" = "TRUE" ]; then
 #   $ECHO -n . > $TTY
    #$ECHO  "$@:" > $TTY
    clicmd=${1##*/}
    $ECHO -e "$clicmd $2 $3 $4 $5 $6 $7 $8 $9:"
    $ECHO "BASE SWITCH CONTEXT -- FID: $BASE_SW_FID" >> $sshowlog
    $ECHO "BASE SWITCH CONTEXT -- FID: $BASE_SW_FID"
    let cliidx++
    $ECHO "$cliidx $@" >> $sshowlog
    time $@
    rc=$?
    if [ $rc -ne 0 ]; then
      $ECHO "** $@: Command:$rc **" >> $sshowlog
    fi
  else
    clicmd=${1##*/}
    $ECHO -e "$clicmd $2 $3 $4 $5 $6 $7 $8 $9:"
    $@
  fi
  $ECHO ""
}
#
# 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

}

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

start_os_cmd() {

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

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

  $DBGCMD  /sbin/mii-tool -vvv 2>/dev/null

  $CHASSISCMD /usr/bin/du -xh / | /bin/sort
  

  # 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 and we need the linux kernel info.
  $CHASSISCMD /bin/cat /var/log/dmesg
  $ECHO "===================================================================="

  $CHASSISCMD /bin/dmesg
  $ECHO "===================================================================="

  $CHASSISCMD /bin/cat /etc/fstab
  
  $CHASSISCMD /bin/cat /etc/mtab

  $ECHO "printing proc entries"
  sync
  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,driver/iic/perf_stats"
  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
    for proc_entry in /proc/*/fpga /proc/fabos/switch/*/route_info /proc/fabos/switch/*/logical_info  /proc/fabos/switch/*/*/dis_info /proc/fabos/switch/*/throttle_info /proc/fabos/switch/*/*/pt_throttle_info
    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
		if test -f /proc/fabos/blade/$a_slot/info; then

			$CHASSISCMD /bin/cat /proc/fabos/blade/$a_slot/info;
		fi
	  done
  fi

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

  if [ "$SSAVE" = "FALSE" ]
  then
    $CHASSISCMD /bin/rpm -Va
  fi
}

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	
}

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/bin/ess show

  #ess show
  $SWITCHCMD /fabos/bin/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

  # portzoneshow 
  $SWITCHCMD /fabos/cliexec/portzoneshow

  # portcamshow 
  $SWITCHCMD /fabos/cliexec/portcamshow

  $SWITCHCMD /fabos/cliexec/cfgsize

  if [ "$HOME_VF" == "" ]; then
	#cfgsize show in AD 255 context  
	$ECHO "cfgsize output in AD255 context to reflect ALL zone DB info"
	$SWITCHCMD /fabos/link_abin/ad --exec 255 "cfgsize" 
	$ECHO ""
  fi

  $SWITCHCMD /fabos/cliexec/cfgshow

  if [ "$HOME_VF" == "" ]; then 	
	$CHASSISCMD /fabos/link_abin/ad --show
  	#ad --validate 
	$CHASSISCMD /fabos/link_abin/ad --exec 255 "/fabos/link_abin/ad --validate" 
   
  	#zone --validate
  	$CHASSISCMD /fabos/link_abin/ad --exec 255 "zone --validate" 
  fi 

  $SWITCHCMD /fabos/link_abin/defzone --show

  $SWITCHCMD /fabos/link_bin/zone --show

   # msfr --showcfg
   $SWITCHCMD /fabos/link_abin/msfr --showcfg

  # 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 
  $CHASSISCMD /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 
  $CHASSISCMD /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

# fcprlsprobe --show command
  #vf-mode enabled
  if [ -n "$HOME_VF" ]; then

     # Get the configured logical switch FIDS
     LS_FIDS=( `lscfg_test --all | sed 's/^[ \t]*[^ \t]*[ \t]*//;s/[ \t].*//;/[0-9]/!d'`)
	  LS_SWNO=( `lscfg_test --all | grep -E "Base|Logical|Default" | sed 's/^[ \t]*//;s/\([0-9]\).*/\1/;'` )

     # Set the context 
     for (( i=0; i < ${#LS_FIDS[@]}; i++ )); do
        setcontext ${LS_FIDS[$i]} ${LS_SWNO[$i]}
	$ECHO "fcprlsprobe --show  :"
        $ECHO "CURRENT CONTEXT -- ${LS_SWNO[$i]},  ${LS_FIDS[$i]}"
        fcp_rls_show
     done
  else
     # non-vf mode
     $ECHO "fcprlsprobe --show  :"  
     fcp_rls_show
  fi

# 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
}

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
  $SWITCHCMD /fabos/cliexec/fdmishow

  # fdmiCacheShow - with other fdmi
  $SWITCHCMD /fabos/cliexec/fdmicacheshow

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

   $SWITCHCMD /fabos/cliexec/lsdbshow -1

   $SWITCHCMD /fabos/cliexec/interfaceshow -1
}

start_security_cmd() {
  $CHASSISCMD /fabos/cliexec/secmodeshow

  $SWITCHCMD /fabos/link_abin/fddCfg --showall

  $SWITCHCMD /fabos/cliexec/secpolicydump

  $SWITCHCMD /fabos/cliexec/secstatsshow

  $SWITCHCMD /fabos/cliexec/secglobalshow

  $SWITCHCMD /fabos/link_sbin/seccertutil show -all

  $CHASSISCMD /fabos/cliexec/pkishow

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

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

  $SWITCHCMD ldapcfg --show  

  $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 --showall

  $CHASSISCMD /fabos/link_abin/fipscfg --verify fips

  $CHASSISCMD /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
fi

}

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

  for cmd in `$ECHO $cmds | /usr/bin/tr "," "\n"`
  do
    $CHASSISCMD $cmd
  done                       
  
  $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

  $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*
 
  $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 had 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:"
     date
      $ECHO ""	
      $ECHO "Time Zone:"
     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

  $SWITCHCMD firmwareshow -v

  $CHASSISCMD /fabos/cliexec/firmwareshow --history

  $CHASSISCMD firmwaredownloadstatus

  #CLI history
  $CHASSISCMD /fabos/sbin/clihistory --showall

  $CHASSISCMD /fabos/cliexec/dbgshow

  # 2. uptime()
  $CHASSISCMD /fabos/cliexec/uptime
 
  # 3. switchShow()
  $ECHO "switchshow:"
  $SWITCHCMD /fabos/bin/switchshow

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

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

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

  # 6. fanshow()
  $CHASSISCMD /fabos/cliexec/fanshow

  # 7. licenseidshow
  /bin/echo "licenseidshow:"
  $CHASSISCMD /fabos/cliexec/licenseidshow 2> /dev/null
  /bin/echo ""

  # 7a. licenseshow
  /bin/echo "licenseshow:"
  $CHASSISCMD /fabos/cliexec/licenseshow 2> /dev/null
  /bin/echo ""

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

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

  # 7d. lservrc file
  /bin/echo "cat -v /etc/fabos/lservrc:"
  if [ -f /etc/fabos/lservrc ]
  then
  $CHASSISCMD /bin/cat -v /etc/fabos/lservrc
  fi
  /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

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

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

  # 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. portswapshow()
  $CHASSISCMD /fabos/cliexec/portswapshow

  # 14. do_bladevershow()
   $ECHO  "do_bladevershow"  
   do_bladevershow
   $ECHO ""

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

  # 15. do_bufopmodeshow()
   $ECHO  "do_bufopmodeshow"  
   do_bufopmodeshow
   $ECHO ""

  # 16. do_serdestunemodeshow()
	$ECHO  "do_serdestunemodeshow"
	do_serdestunemodeshow
	$ECHO ""

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

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

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

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

  /bin/echo "cat -v /etc/fabos/fabos.chassis.conf:"
  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"
  fi
  /bin/echo "===================================================================="
  /bin/echo ""

  # list /var/log dir
  $CHASSISCMD /bin/ls -l /var/log
	
  # lscfg
	if [ $standby = no ] 
	then
		$CHASSISCMD lscfg --show 2>&1
		$CHASSISCMD lscfg --show -ge 2>&1
	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 ""
}
do_bufopmodeshow() {
	if [ $sw_platform = 62 ] || [ $sw_platform == 77 ]
	then
	   $CHASSISCMD /fabos/sbin/bufopmode --showall
	fi
}

do_serdestunemodeshow() {
	if [ $sw_platform = 77 ]
	then
		$CHASSISCMD /fabos/sbin/serdestunemode --show
	fi
}

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
}

fcp_rls_show() {
  if [ "$multiBlade" = "TRUE" ]
  then
     allfports=`switchshow | grep "[FL]-Port" | awk '{print $2"/"$3}'`
  else
     allfports=`switchshow | grep "[FL]-Port" | awk '{print $2}'`
  fi
  if [ $($ECHO $allfports | wc -w) -eq 0 ]; then
     $ECHO "No F/FL Ports"
     $ECHO -e "\n"
  else
     for port in $allfports; do
     $ECHO "fcprlsprobe --show $port          :"
     /fabos/link_bin/fcprlsprobe --show $port
     $ECHO -e "\n"
  done
  fi
}

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
    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
  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

  $BASESWITCHCMD portcfgexport $str$begport-$endport
  $BASESWITCHCMD portcfgvexport $str$begport-$endport
}

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' )
  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]
  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 **" >> $sshowlog
		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

    $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

	#
	# Reg dump
	#
	$ECHO Saving Regdump +++++++++++++++++++++++++++++++++++++++++++++++++++
	regdump $slot/$chip/0
	sleep 5
	sync
	mv /var/regdump.dmp /var/avregdump.dmp.$slot.$chip
	sync
	gzip -f /var/avregdump.dmp.$slot.$chip
	sync

	#
	# 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
}

striker_filter_() {
	if [ $slot = 0 ]
	then
        $CHASSISCMD ptfilterportshow 1
        $CHASSISCMD ptstatsshow 1
        $CHASSISCMD ptregshow 1
        $CHASSISCMD ptfilterportshow 3
        $CHASSISCMD ptstatsshow 3
        $CHASSISCMD ptregshow 3
        $CHASSISCMD ptfilterportshow 5
        $CHASSISCMD ptstatsshow 5
        $CHASSISCMD ptregshow 5
        $CHASSISCMD ptfilterportshow 6
        $CHASSISCMD ptstatsshow 6
        $CHASSISCMD ptregshow 6
        $CHASSISCMD ptfilterportshow 7
        $CHASSISCMD ptstatsshow 7
        $CHASSISCMD ptregshow 7
	else
  	        for k in `seq 24 28`; do
                        $CHASSISCMD ptfilterportshow $slot/$k
                        $CHASSISCMD ptstatsshow $slot/$k
                        $CHASSISCMD ptregshow $slot/$k
	        done
  	        for k in `seq 0 4`; do
                        $CHASSISCMD ptfilterportshow $slot/$k
                        $CHASSISCMD ptstatsshow $slot/$k
                        $CHASSISCMD ptregshow $slot/$k
	        done
  	        for k in `seq 11 15`; do
                        $CHASSISCMD ptfilterportshow $slot/$k
                        $CHASSISCMD ptstatsshow $slot/$k
                        $CHASSISCMD ptregshow $slot/$k
	        done
  	        for k in `seq 17 21`; do
                        $CHASSISCMD ptfilterportshow $slot/$k
                        $CHASSISCMD ptstatsshow $slot/$k
                        $CHASSISCMD ptregshow $slot/$k
	        done
	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' )

  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 segemnt 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' )

  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_bin/ptstatsshow $blport
		$ECHO ""
		$ECHO "CMD: ptregshow " $blport
		$ECHO ""
		/fabos/link_bin/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_bin/ptstatsshow $lslot/$blport
			$ECHO ""
			$ECHO "CMD: ptregshow " $lslot"/"$blport
			$ECHO ""
			/fabos/link_bin/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_blaster=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
		* ) 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	
}

spike_ftrace_() {
	$ECHO ""
	$ECHO "Spike FTRACE display:"
	$SWITCHCMD /fabos/cliexec/portshow ftrace 16 stats
	if [ "$SSAVE" = "TRUE" ]; then
		$SWITCHCMD /fabos/cliexec/portshow ftrace 16 ci a
	fi
}

spike_ftnl_show_() {
  $ECHO ""
  $ECHO "Spike FTNL Debug display starting VE port 16(0):"
	for k in `seq 0 7`; do
		$SWITCHCMD /fabos/cliexec/portshow fcipdebug ge0 ftnl $k all
	done
}

spike_ipsec_show_() {
	$ECHO ""
	$ECHO "Spike IPSec Debug display starting VE port 16(0):"
	$ECHO ""
	$SWITCHCMD /fabos/cliexec/portshow fcipdebug ge0 ftnl ipsecrspd
	$SWITCHCMD /fabos/cliexec/portshow fcipdebug ge0 ftnl ipsecspd
	$SWITCHCMD /fabos/cliexec/portshow fcipdebug ge0 ftnl ipsecsadb
	$SWITCHCMD /fabos/cliexec/portshow fcipdebug ge0 ftnl ipsecsadb all
	$SWITCHCMD /fabos/cliexec/portshow fcipdebug ge0 ftnl ipseciscb
	$SWITCHCMD /fabos/cliexec/portshow fcipdebug ge0 ftnl ipseciscb all
	$SWITCHCMD /fabos/cliexec/portshow fcipdebug ge0 ftnl ipsecatag show all
}

spike_pdp_show_() {
	$ECHO ""
	$ECHO "Spike PDP Debug display starting VE port 16(0):"
	$ECHO ""
	$SWITCHCMD /fabos/cliexec/portshow fcipdebug ge0 ftnl pdpmap
	$SWITCHCMD /fabos/cliexec/portshow fcipdebug ge0 ftnl bcmrules
	$SWITCHCMD /fabos/cliexec/portshow fcipdebug ge0 ftnl bcmrules errs
}

spike_ip_show_() {
	$ECHO ""
	$ECHO "Spike IPv4/IPv6 Route Debug display starting VE port 16(0):"
	$ECHO ""
	$SWITCHCMD /fabos/cliexec/portshow fcipdebug ge0 ftnl iproute
	$SWITCHCMD /fabos/cliexec/portshow fcipdebug ge0 ftnl arpcache
	$SWITCHCMD /fabos/cliexec/portshow fcipdebug ge0 ftnl ipcache
	$SWITCHCMD /fabos/cliexec/portshow fcipdebug ge0 ftnl ip6route
	$SWITCHCMD /fabos/cliexec/portshow fcipdebug ge0 ftnl nd6cache
	$SWITCHCMD /fabos/cliexec/portshow fcipdebug ge0 ftnl ip6cache
}

spike_gige_portshow_() {
	$CHASSISCMD date

    DP_UP=1

    # Test if DP is up
    RC_DP=`portshow xtun 16 -fcp -itl -info|sed -n 's/.*rc = \([a-fA-F0-9]*\)/\1/p'`
    
    if [ "$RC_DP" == 'fffffffc' ]; then
        DP_UP=0
        $ECHO "Detected DP to be down!"
    else
        $ECHO "Detected DP to be up!"
    fi

    # Get FTRACE information
	spike_ftrace_

	$ECHO ""
	$SWITCHCMD /fabos/cliexec/portshow ipif all
	$SWITCHCMD /fabos/cliexec/portshow iproute all
	$SWITCHCMD /fabos/cliexec/portshow arp all
    for k in `seq 0 5`; do
	    $SWITCHCMD /fabos/cliexec/portshow  ge$k
		$SWITCHCMD /fabos/cliexec/portstatsshow  ge$k
    done

#	Get Tunnel information
	$SWITCHCMD /fabos/cliexec/portshow fciptunnel -c --lifetime
	$SWITCHCMD /fabos/cliexec/portshow fciptunnel -c
	$SWITCHCMD /fabos/cliexec/portshow fciptunnel -cp
	$SWITCHCMD /fabos/cliexec/portshow fciptunnel -pctq --lifetime
	$SWITCHCMD /fabos/cliexec/portshow fciptunnel -pctq 
	$SWITCHCMD /fabos/cliexec/portshow fciptunnel -pctqd --lifetime
	$SWITCHCMD /fabos/cliexec/portshow fciptunnel -pctqd 
	$SWITCHCMD /fabos/cliexec/portshow fciptunnel -pctqd --reset | /bin/grep dontprintanydata

	spike_ftnl_show_
	spike_ipsec_show_
	spike_pdp_show_
	spike_ip_show_

	$ECHO ""
	$SWITCHCMD /fabos/cliexec/portshow fcipdebug ge0 ftnl fcTnl 

#	Get advanced compression stats
	$SWITCHCMD /fabos/cliexec/portshow fcipdebug ge0 ftnl advComp

#	Get advanced compression stats
	$SWITCHCMD /fabos/cliexec/portshow fcipdebug ge0 ftnl fastsync

#	Get pool status for Cavium
	$ECHO ""
	$SWITCHCMD /fabos/cliexec/portshow fcipdebug ge0 ftnl drShow 

    if [ "$DP_UP" -eq 1 ]; then
	    $SWITCHCMD /fabos/cliexec/portshow xtun 16 -dram2
	    $SWITCHCMD /fabos/cliexec/portshow xtun 16 -pools
    else
        $ECHO "Skipping VE Pool Stats due to DP down"
    fi

    if [ "$DP_UP" -eq 1 ]; then
	$SWITCHCMD /fabos/cliexec/portshow xtun 16 -ficon -stats -all
	$SWITCHCMD /fabos/cliexec/portshow xtun 16 -ficon -fdpb -all
	$SWITCHCMD /fabos/cliexec/portshow xtun 16 -ficon -fcub -all
	$SWITCHCMD /fabos/cliexec/portshow xtun 16 -ficon -emul -all
    else
        $ECHO "Skipping FICON commands due to DP down."
    fi
#
#    for tt in `seq 0 7`; do
#        $SWITCHCMD /fabos/cliexec/portshow fcipdebug ge0 ftnl rte $tt
#    done
#
	$SWITCHCMD /fabos/cliexec/portshow fcipdebug ge0 ftnl vexDbg 
    for tt in `seq 16 23`; do
    	$SWITCHCMD /fabos/cliexec/portstatsshow $tt

        if [ "$DP_UP" -eq 1 ]; then
            $SWITCHCMD /fabos/cliexec/portshow xtun $tt -fcp -port -stats
	        $SWITCHCMD /fabos/cliexec/portshow xtun $tt -fcp -port -it -itn -itl -twb -cfg
	        $SWITCHCMD /fabos/cliexec/portshow xtun $tt -fcp -it -itn -itl -twb -stats
	        $SWITCHCMD /fabos/cliexec/portshow xtun $tt -fcp -port -it -itn -itl -twb -info
	        $SWITCHCMD /fabos/cliexec/portshow xtun $tt -fcp -it -stats -info -sid -1 -did -1
        fi

	    $SWITCHCMD /fabos/cliexec/portregshow $tt
	    $SWITCHCMD portcfgvexport $tt
    done

# limit pt regshows for Striker/Spike
#   for pp in `seq 42 48`; do
#	    $SWITCHCMD /fabos/bin/ptdatashow  $pp
#	    $SWITCHCMD /fabos/bin/ptregshow  $pp
#   done

    $CHASSISCMD date
}

gige_port_show_non_bladed_() {
  $CHASSISCMD date
  for k in `seq 0 1`; do

	 $SWITCHCMD /fabos/cliexec/portshow  ge$k
	$SWITCHCMD /fabos/cliexec/portstatsshow  ge$k
	$SWITCHCMD /fabos/cliexec/portshow  ipif ge$k
	$SWITCHCMD /fabos/cliexec/portshow  inbandmgmt ge$k
	$SWITCHCMD /fabos/cliexec/portshow  iproute ge$k
	$SWITCHCMD /fabos/cliexec/portshow  arp ge$k
	$SWITCHCMD /fabos/cliexec/portshow fciptunnel ge$k all -credits -params -perf -hist
	$SWITCHCMD /fabos/cliexec/portshow  ficon ge$k all
	$SWITCHCMD /fabos/cliexec/portshow  ficon ge$k 0 -pools
		for tt in `seq 0 7`; do
			
			$SWITCHCMD /fabos/cliexec/portshow  ficon ge$k $tt -epcb
			$SWITCHCMD /fabos/cliexec/portshow  ficon ge$k $tt -fdpb
			$SWITCHCMD /fabos/cliexec/portshow  ficon ge$k $tt -images
			$SWITCHCMD /fabos/cliexec/portshow  ficon ge$k $tt -emul
			$SWITCHCMD /fabos/cliexec/portshow  ftrace ge$k $tt stats
		done
	$ECHO ""
	$ECHO ""
	$ECHO ""
  done

  	for pp in `seq 16 31`; do
		$SWITCHCMD /fabos/cliexec/portregshow  $pp
		$SWITCHCMD portcfgvexport $pp
	done

	# Defect 61352 Instrumentation:
	# Once stabilized (in beta, or rc), we may not need these
	# if it affects supportShow's overall timing.
  	for pp in `seq 40 49`; do
		 $SWITCHCMD /fabos/bin/ptdatashow  $pp
	done

	cd /proc/fabos/blade
	for i in `ls -d [0-9]* | sort -n` ; do
	asic_db_blade_type_ $i
	done

	if [ "$blade_type" != "sabre" ]   
	then	
  		for pp in `seq 90 99`; do
			$SWITCHCMD /fabos/bin/ptdatashow  $pp
		done
	fi

	$SWITCHCMD ptstatsshow	40

	if [ "$blade_type" != "sabre" ] 
	then	
		$SWITCHCMD ptstatsshow	90
	fi

	$SWITCHCMD ptstatsshow	49

	if [ "$blade_type" != "sabre" ]
	then	
		$SWITCHCMD ptstatsshow	99
	fi

	$SWITCHCMD ptstatsshow	23

	$SWITCHCMD ptstatsshow	73

	$SWITCHCMD ptregshow 40

	if [ "$blade_type" != "sabre" ]
	then	
		$SWITCHCMD ptregshow 90
	fi

	$SWITCHCMD ptregshow 49

	if [ "$blade_type" != "sabre" ]  
	then	
		$SWITCHCMD ptregshow 99
	fi

	$SWITCHCMD ptchipregshow 40 

	if [ "$blade_type" != "sabre" ]	
	then
		$SWITCHCMD ptchipregshow 90 
	fi
  $CHASSISCMD date
}

striker_ftrace_c0_() {
	$ECHO ""
	$ECHO "Striker FTRACE display for slot $1 starting VE port 12:"
#	Dump 1st Cavium FTRACE contents display
#	VE ports 12-21 are on 1st Cavium 
	$SWITCHCMD /fabos/cliexec/portshow ftrace $1/12 stats
	if [ "$SSAVE" = "TRUE" ]; then
		$SWITCHCMD /fabos/cliexec/portshow ftrace $1/12 ci a
	fi
}

striker_ftrace_c1_() {
	$ECHO ""
	$ECHO "Striker FTRACE display for slot $1 starting VE port 22:"
#	Dump 2nd Cavium FTRACE contents display
#	VE ports 22-31 are on 2nd Cavium 
	$SWITCHCMD /fabos/cliexec/portshow ftrace $1/22 stats
	if [ "$SSAVE" = "TRUE" ]; then
		$SWITCHCMD /fabos/cliexec/portshow ftrace $1/22 ci a
	fi
}

striker_ficon_c0_() {
	$ECHO ""
	$ECHO "Striker FICON display for slot $1 starting VE port 12:"
#	Dump 1st Cavium FICON contents display
#	VE ports 12-21 are on 1st Cavium 
    $SWITCHCMD /fabos/cliexec/portshow xtun $1/12 -ficon -stats -all
    $SWITCHCMD /fabos/cliexec/portshow xtun $1/12 -ficon -fdpb -all
    $SWITCHCMD /fabos/cliexec/portshow xtun $1/12 -ficon -fcub -all
    $SWITCHCMD /fabos/cliexec/portshow xtun $1/12 -ficon -emul -all
}

striker_ficon_c1_() {
	$ECHO ""
	$ECHO "Striker FICON display for slot $1 starting VE port 22:"
#	Dump 2nd Cavium FICON contents display
#	VE ports 22-31 are on 2nd Cavium 
    $SWITCHCMD /fabos/cliexec/portshow xtun $1/22 -ficon -stats -all
    $SWITCHCMD /fabos/cliexec/portshow xtun $1/22 -ficon -fdpb -all
    $SWITCHCMD /fabos/cliexec/portshow xtun $1/22 -ficon -fcub -all
    $SWITCHCMD /fabos/cliexec/portshow xtun $1/22 -ficon -emul -all
}
striker_ftnl_show_c0_() {
  $ECHO ""
  $ECHO "Striker FTNL Debug All for slot $1 starting VE port 12(0):"
	for k in `seq 0 9`; do
		$SWITCHCMD /fabos/cliexec/portshow fcipdebug $1/ge0 ftnl $k all
	done
  $SWITCHCMD /fabos/cliexec/portshow fcipdebug $1/ge0 ftnl fcTnl
  $SWITCHCMD /fabos/cliexec/portshow fcipdebug $1/ge0 ftnl advComp
  $SWITCHCMD /fabos/cliexec/portshow fcipdebug $1/ge0 ftnl fastsync
}

striker_ftnl_show_c1_() {
  $ECHO ""
  $ECHO "Striker FTNL Debug All for slot $1 starting VE port 22(0):"
	for k in `seq 0 9`; do
		$SWITCHCMD /fabos/cliexec/portshow fcipdebug $1/xge0 ftnl $k all
	done
  $SWITCHCMD /fabos/cliexec/portshow fcipdebug $1/xge0 ftnl fcTnl
  $SWITCHCMD /fabos/cliexec/portshow fcipdebug $1/xge0 ftnl advComp
  $SWITCHCMD /fabos/cliexec/portshow fcipdebug $1/xge0 ftnl fastsync
}

striker_ftnl_dbg_c0_() {
  $ECHO ""
  $ECHO "Striker FTNL Debug display for slot $1 starting VE port 12(0):"
  $ECHO ""	
#  for tt in `seq 0 11`; do
#	$SWITCHCMD /fabos/cliexec/portshow fcipdebug $1/ge0 ftnl rte $tt
#  done

  $SWITCHCMD /fabos/cliexec/portshow fcipdebug $1/ge0 ftnl vexDbg 
}

striker_ftnl_dbg_c1_() {
  $ECHO ""
  $ECHO "Striker FTNL Debug display for slot $1 starting VE port 22(0):"
  $ECHO ""
#  for tt in `seq 0 11`; do
#	$SWITCHCMD /fabos/cliexec/portshow fcipdebug $1/xge0 ftnl rte $tt
#  done

  $SWITCHCMD /fabos/cliexec/portshow fcipdebug $1/xge0 ftnl vexDbg
}

striker_ipsec_dbg_c0_() {
	$ECHO ""
	$ECHO "Striker IPSec Debug display for slot $1 starting VE port 12(0):"
	$ECHO ""
	$SWITCHCMD /fabos/cliexec/portshow fcipdebug $1/ge0 ftnl ipsecrspd
	$SWITCHCMD /fabos/cliexec/portshow fcipdebug $1/ge0 ftnl ipsecspd
	$SWITCHCMD /fabos/cliexec/portshow fcipdebug $1/ge0 ftnl ipsecsadb
	$SWITCHCMD /fabos/cliexec/portshow fcipdebug $1/ge0 ftnl ipsecsadb all
	$SWITCHCMD /fabos/cliexec/portshow fcipdebug $1/ge0 ftnl ipseciscb
	$SWITCHCMD /fabos/cliexec/portshow fcipdebug $1/ge0 ftnl ipseciscb all
	$SWITCHCMD /fabos/cliexec/portshow fcipdebug $1/ge0 ftnl ipsecatag show all
}

striker_ipsec_dbg_c1_() {
	$ECHO ""
	$ECHO "Striker IPSec Debug display for slot $1 starting VE port 22(0):"
	$ECHO ""
	$SWITCHCMD /fabos/cliexec/portshow fcipdebug $1/xge0 ftnl ipsecrspd
	$SWITCHCMD /fabos/cliexec/portshow fcipdebug $1/xge0 ftnl ipsecspd
	$SWITCHCMD /fabos/cliexec/portshow fcipdebug $1/xge0 ftnl ipsecsadb
	$SWITCHCMD /fabos/cliexec/portshow fcipdebug $1/xge0 ftnl ipsecsadb all
	$SWITCHCMD /fabos/cliexec/portshow fcipdebug $1/xge0 ftnl ipseciscb
	$SWITCHCMD /fabos/cliexec/portshow fcipdebug $1/xge0 ftnl ipseciscb all
	$SWITCHCMD /fabos/cliexec/portshow fcipdebug $1/xge0 ftnl ipsecatag show all
}

striker_pdp_dbg_c0_() {
	$ECHO ""
	$ECHO "Striker PDP Debug display for slot $1 starting VE port 12(0):"
	$ECHO ""
	$SWITCHCMD /fabos/cliexec/portshow fcipdebug $1/ge0 ftnl pdpmap
	$SWITCHCMD /fabos/cliexec/portshow fcipdebug $1/ge0 ftnl bcmrules
	$SWITCHCMD /fabos/cliexec/portshow fcipdebug $1/ge0 ftnl bcmrules errs
}

striker_pdp_dbg_c1_() {
	$ECHO ""
	$ECHO "Striker PDP Debug display for slot $1 starting VE port 22(0):"
	$ECHO ""
	$SWITCHCMD /fabos/cliexec/portshow fcipdebug $1/xge0 ftnl pdpmap
	$SWITCHCMD /fabos/cliexec/portshow fcipdebug $1/xge0 ftnl bcmrules
	$SWITCHCMD /fabos/cliexec/portshow fcipdebug $1/xge0 ftnl bcmrules errs
}

striker_ip_dbg_c0_() {
	$ECHO ""
	$ECHO "Striker IP/v4/IPv6 Route Debug display for slot $1 starting VE port 12(0):"
	$ECHO ""
	$SWITCHCMD /fabos/cliexec/portshow fcipdebug $1/ge0 ftnl iproute
	$SWITCHCMD /fabos/cliexec/portshow fcipdebug $1/ge0 ftnl arpcache
	$SWITCHCMD /fabos/cliexec/portshow fcipdebug $1/ge0 ftnl ipcache
	$SWITCHCMD /fabos/cliexec/portshow fcipdebug $1/ge0 ftnl ip6route
	$SWITCHCMD /fabos/cliexec/portshow fcipdebug $1/ge0 ftnl nd6cache
	$SWITCHCMD /fabos/cliexec/portshow fcipdebug $1/ge0 ftnl ip6cache
}

striker_ip_dbg_c1_() {
	$ECHO ""
	$ECHO "Striker IP/v4/IPv6 Route Debug display for slot $1 starting VE port 22(0):"
	$ECHO ""
	$SWITCHCMD /fabos/cliexec/portshow fcipdebug $1/xge0 ftnl iproute
	$SWITCHCMD /fabos/cliexec/portshow fcipdebug $1/xge0 ftnl arpcache
	$SWITCHCMD /fabos/cliexec/portshow fcipdebug $1/xge0 ftnl ipcache
	$SWITCHCMD /fabos/cliexec/portshow fcipdebug $1/xge0 ftnl ip6route
	$SWITCHCMD /fabos/cliexec/portshow fcipdebug $1/xge0 ftnl nd6cache
	$SWITCHCMD /fabos/cliexec/portshow fcipdebug $1/xge0 ftnl ip6cache
}

striker_ge_cmds_() {
    $ECHO ""
    $SWITCHCMD /fabos/cliexec/portshow  $1/$2
	$SWITCHCMD /fabos/cliexec/portstatsshow  $1/$2
}

striker_xge_cmds_() {
    $ECHO ""
    $SWITCHCMD /fabos/cliexec/portshow  $1/$2
    $SWITCHCMD /fabos/cliexec/portstatsshow  $1/$2
	$ECHO "GE Port Stats for Cross port:"
	$SWITCHCMD /fabos/cliexec/portshow stats  $1/$2
}

fcip_ge_all_cmds_() {
	# Commands that are run once per LS
    $ECHO ""
    $SWITCHCMD /fabos/cliexec/portshow  ipif all
    $SWITCHCMD /fabos/cliexec/portshow  iproute all
    $SWITCHCMD /fabos/cliexec/portshow  arp all
}

striker_ge_pool_stats_() {
	# Get pool status for Cavium
    $SWITCHCMD /fabos/cliexec/portshow fcipdebug $1/$2 ftnl drShow
}

striker_ve_pool_stats_() {
	# Get pool status for Cavium
    $SWITCHCMD /fabos/cliexec/portshow xtun $1/$2 -dram2
    $SWITCHCMD /fabos/cliexec/portshow xtun $1/$2 -pools
}

striker_ve_cmds_() {
    $ECHO ""
    $SWITCHCMD /fabos/cliexec/portstatsshow $1/$2

    # Execute xtun commands only if DP0 ($3) or DP1 ($4) is up 
    if [ "$3" -eq 1 -a "$2" -lt 22 ] || [ "$4" -eq 1 -a "$2" -ge 22 ]; then
        $SWITCHCMD /fabos/cliexec/portshow xtun $1/$2 -fcp -port -stats
	    $SWITCHCMD /fabos/cliexec/portshow xtun $1/$2 -fcp -port -it -itn -itl -twb -cfg
	    $SWITCHCMD /fabos/cliexec/portshow xtun $1/$2 -fcp -it -itn -itl -twb -stats
	    $SWITCHCMD /fabos/cliexec/portshow xtun $1/$2 -fcp -port -it -itn -itl -twb -info
	    $SWITCHCMD /fabos/cliexec/portshow xtun $1/$2 -fcp -it -stats -info -sid -1 -did -1
    fi
    
    $SWITCHCMD /fabos/cliexec/portregshow $1/$2
    $SWITCHCMD portcfgvexport $1/$2
}

striker_ve_all_cmds_() {
	# Commands that are run once per LS
    $ECHO ""
	$SWITCHCMD /fabos/cliexec/portshow fciptunnel -c --lifetime
	$SWITCHCMD /fabos/cliexec/portshow fciptunnel -c
	$SWITCHCMD /fabos/cliexec/portshow fciptunnel -cp
	$SWITCHCMD /fabos/cliexec/portshow fciptunnel -pctq --lifetime
	$SWITCHCMD /fabos/cliexec/portshow fciptunnel -pctq 
	$SWITCHCMD /fabos/cliexec/portshow fciptunnel -pctqd --lifetime
	$SWITCHCMD /fabos/cliexec/portshow fciptunnel -pctqd 
	$SWITCHCMD /fabos/cliexec/portshow fciptunnel -pctqd --reset | /bin/grep dontshowanydata
}

striker_gige_port_show_() {
	$CHASSISCMD date

    # Variables to be used to signify if DP's are up
    DP0_UP=1
    DP1_UP=1
	$SWITCHCMD /fabos/cliexec/ipscmd strikerrev $1
	# VF mode is enabled
	if [ -n "$HOME_VF" ]; then
        # Test if DP's are up
		for (( i=0; i < ${#LS_FIDS[@]}; i++ )); do
			setcontext ${LS_FIDS[$i]} ${LS_SWNO[$i]}

			# Get VEs in current logical switch
			ve_ports=(`switchshow -slot $1 |sed '/VE/!d;s/^[ \t]*[^ \t]*[ \t]*//;s/^[^ \t]*[ \t]*//;s/[ \t].*//'`) 
			
			for (( j=0; j < ${#ve_ports[@]}; j++ )); do
				if [ ${ve_ports[$j]} -eq 12 ]; then
                    RC_DP0=`portshow xtun $1/12 -fcp -itl -info|sed -n 's/.*rc = \([a-fA-F0-9]*\)/\1/p'`
				fi
				if [ ${ve_ports[$j]} -eq 22 ]; then
                    RC_DP1=`portshow xtun $1/22 -fcp -itl -info|sed -n 's/.*rc = \([a-fA-F0-9]*\)/\1/p'`
				fi
         	done
		done

        if [ "$RC_DP0" == 'fffffffc' ]; then
            DP0_UP=0
            $ECHO "Detected DP0 to be down!"
        else
            $ECHO "Detected DP0 to be up!"
        fi
        if [ "$RC_DP1" == 'fffffffc' ]; then
            DP1_UP=0
            $ECHO "Detected DP1 to be down!"
        else
            $ECHO "Detected DP1 to be up!"
        fi

		# Display FTrace Information for VE 12 and VE 22
		for (( i=0; i < ${#LS_FIDS[@]}; i++ )); do
			setcontext ${LS_FIDS[$i]} ${LS_SWNO[$i]}

			# Get VEs in current logical switch
			ve_ports=(`switchshow -slot $1 |sed '/VE/!d;s/^[ \t]*[^ \t]*[ \t]*//;s/^[^ \t]*[ \t]*//;s/[ \t].*//'`) 
			
			# FTrace Information
			for (( j=0; j < ${#ve_ports[@]}; j++ )); do
				if [ ${ve_ports[$j]} -eq 12 ]; then
		           	striker_ftrace_c0_ $1
				fi
				if [ ${ve_ports[$j]} -eq 22 ]; then
					striker_ftrace_c1_ $1
				fi
         	done
		done

		# Display GE Information per logical switch
		for (( i=0; i < ${#LS_FIDS[@]}; i++ )); do
			setcontext ${LS_FIDS[$i]} ${LS_SWNO[$i]}

			# Get GEs in current logical switch
			ge_ports=(`switchshow -slot $1 | sed '/FCIP/!d;s/^[ \t]*[^ \t]*[ \t]*//;s/[ \t].*//'`)

			# GE Information
			for (( j=0; j < ${#ge_ports[@]}; j++ )); do
				$ECHO "CURRENT CONTEXT -- LS: ${LS_SWNO[$i]}, FID: ${LS_FIDS[$i]}, GE: ${ge_ports[$j]}"
            
			$ECHO ${ge_ports[$j]} | grep "^xge"	&> /dev/null
			if [ $? -eq 1 ]; then
			    striker_ge_cmds_ $1 ${ge_ports[$j]}
			else
				striker_xge_cmds_ $1 ${ge_ports[$j]}
			fi	
         	done
		done

		# Display FTNL All Information for ge0 and xge0
		for (( i=0; i < ${#LS_FIDS[@]}; i++ )); do
			setcontext ${LS_FIDS[$i]} ${LS_SWNO[$i]}
			
			# Get GEs in current logical switch
			ge_ports=(`switchshow -slot $1 | sed '/FCIP/!d;s/^[ \t]*[^ \t]*[ \t]*//;s/[ \t].*//'`)

			# FTNL Debug Information
			for (( j=0; j < ${#ge_ports[@]}; j++ )); do
				if [ ${ge_ports[$j]} = 'ge0' ]; then
					striker_ftnl_show_c0_ $1 
				fi
				if [ ${ge_ports[$j]} = 'xge0' ]; then
                    striker_ftnl_show_c1_ $1
               fi
			done
		done	

		# Display Pool Stats Information for ge0 and xge0
		for (( i=0; i < ${#LS_FIDS[@]}; i++ )); do
			setcontext ${LS_FIDS[$i]} ${LS_SWNO[$i]}
			
			# Get GEs in current logical switch
			ge_ports=(`switchshow -slot $1 | sed '/FCIP/!d;s/^[ \t]*[^ \t]*[ \t]*//;s/[ \t].*//'`)

			# Pool Stats for GE
			for (( j=0; j < ${#ge_ports[@]}; j++ )); do
                if [ ${ge_ports[$j]} = 'ge0' ]; then
                    striker_ge_pool_stats_ $1 ${ge_ports[$j]}
                fi
                if [ ${ge_ports[$j]} = 'xge0' ]; then
                    striker_ge_pool_stats_ $1 ${ge_ports[$j]}
                fi
         	done
		done

		# Display Pool Stats Information for VE 12 and VE 22 
		for (( i=0; i < ${#LS_FIDS[@]}; i++ )); do
			setcontext ${LS_FIDS[$i]} ${LS_SWNO[$i]}
			
			# Get VEs in current logical switch
			ve_ports=(`switchshow -slot $1 |sed '/VE/!d;s/^[ \t]*[^ \t]*[ \t]*//;s/^[^ \t]*[ \t]*//;s/[ \t].*//'`) 

			# Pool Stats for VE
			for (( j=0; j < ${#ve_ports[@]}; j++ )); do
				if [ ${ve_ports[$j]} -eq 12 ]; then
                    if [ "$DP0_UP" -eq 1 ]; then
		           	    striker_ve_pool_stats_ $1 ${ve_ports[$j]}
                    else
                        $ECHO "Skipping VE Pool Stats due to DP0 down"
                    fi
				fi
				if [ ${ve_ports[$j]} -eq 22 ]; then
                    if [ "$DP1_UP" -eq 1 ]; then
					    striker_ve_pool_stats_ $1 ${ve_ports[$j]}
                    else
                        $ECHO "Skipping VE Pool Stats due to DP1 down"
                    fi
				fi
         	done
		done	

		# Display FICON Information for VE 12 and VE 22
		for (( i=0; i < ${#LS_FIDS[@]}; i++ )); do
			setcontext ${LS_FIDS[$i]} ${LS_SWNO[$i]}

			# Get VEs in current logical switch
            ve_ports=(`switchshow -slot $1 |sed '/VE/!d;s/^[ \t]*[^ \t]*[ \t]*//;s/^[^ \t]*[ \t]*//;s/[ \t].*//'`)

			# FICON Information
			for (( j=0; j < ${#ve_ports[@]}; j++ )); do
				if [ ${ve_ports[$j]} -eq 12 ]; then
                    if [ "$DP0_UP" -eq 1 ]; then
		           	    striker_ficon_c0_ $1
                    else
                        $ECHO "Skipping FICON commands due to DP0 down"
                    fi
				fi
				if [ ${ve_ports[$j]} -eq 22 ]; then
                    if [ "$DP1_UP" -eq 1 ]; then
					    striker_ficon_c1_ $1
                    else
                        $ECHO "Skipping FICON commands due to DP1 down"
                    fi
				fi
         	done
		done

		# Display FTNL Debug Information for ge0 and xge0
		for (( i=0; i < ${#LS_FIDS[@]}; i++ )); do
			setcontext ${LS_FIDS[$i]} ${LS_SWNO[$i]}
			
			# Get GEs in current logical switch
			ge_ports=(`switchshow -slot $1 | sed '/FCIP/!d;s/^[ \t]*[^ \t]*[ \t]*//;s/[ \t].*//'`)

			# FTNL Debug Information
			for (( j=0; j < ${#ge_ports[@]}; j++ )); do
                if [ ${ge_ports[$j]} = 'ge0' ]; then
                    striker_ftnl_dbg_c0_ $1
                fi
                if [ ${ge_ports[$j]} = 'xge0' ]; then
                    striker_ftnl_dbg_c1_ $1
                fi
         	done
		done

		# Display IPSec Debug Information for ge0 and xge0
		for (( i=0; i < ${#LS_FIDS[@]}; i++ )); do
			setcontext ${LS_FIDS[$i]} ${LS_SWNO[$i]}
			
			# Get GEs in current logical switch
			ge_ports=(`switchshow -slot $1 | sed '/FCIP/!d;s/^[ \t]*[^ \t]*[ \t]*//;s/[ \t].*//'`)

			# FTNL Debug Information
			for (( j=0; j < ${#ge_ports[@]}; j++ )); do
                if [ ${ge_ports[$j]} = 'ge0' ]; then
                    striker_ipsec_dbg_c0_ $1
                fi
                if [ ${ge_ports[$j]} = 'xge0' ]; then
                    striker_ipsec_dbg_c1_ $1
                fi
         	done
		done

		# Display PDP Debug Information for ge0 and xge0
		for (( i=0; i < ${#LS_FIDS[@]}; i++ )); do
			setcontext ${LS_FIDS[$i]} ${LS_SWNO[$i]}
			
			# Get GEs in current logical switch
			ge_ports=(`switchshow -slot $1 | sed '/FCIP/!d;s/^[ \t]*[^ \t]*[ \t]*//;s/[ \t].*//'`)

			# FTNL Debug Information
			for (( j=0; j < ${#ge_ports[@]}; j++ )); do
                if [ ${ge_ports[$j]} = 'ge0' ]; then
                    striker_pdp_dbg_c0_ $1
                fi
                if [ ${ge_ports[$j]} = 'xge0' ]; then
                    striker_pdp_dbg_c1_ $1
                fi
         	done
		done

		# Display IPv4/IPv6 Route Debug Information for ge0 and xge0
		for (( i=0; i < ${#LS_FIDS[@]}; i++ )); do
			setcontext ${LS_FIDS[$i]} ${LS_SWNO[$i]}
			
			# Get GEs in current logical switch
			ge_ports=(`switchshow -slot $1 | sed '/FCIP/!d;s/^[ \t]*[^ \t]*[ \t]*//;s/[ \t].*//'`)

			# FTNL Debug Information
			for (( j=0; j < ${#ge_ports[@]}; j++ )); do
                if [ ${ge_ports[$j]} = 'ge0' ]; then
                    striker_ip_dbg_c0_ $1
                fi
                if [ ${ge_ports[$j]} = 'xge0' ]; then
                    striker_ip_dbg_c1_ $1
                fi
         	done
		done

		# Display VE Information per logical switch
		for (( i=0; i < ${#LS_FIDS[@]}; i++ )); do
			setcontext ${LS_FIDS[$i]} ${LS_SWNO[$i]}

			# Get VEs in current logical switch
			ve_ports=(`switchshow -slot $1 |sed '/VE/!d;s/^[ \t]*[^ \t]*[ \t]*//;s/^[^ \t]*[ \t]*//;s/[ \t].*//'`)

			# VE Information
			for (( j=0; j < ${#ve_ports[@]}; j++ )); do
				$ECHO "CURRENT CONTEXT -- LS: $i, FID: ${LS_FIDS[$i]}, VE: ${ve_ports[$j]}"
				striker_ve_cmds_ $1 ${ve_ports[$j]} $DP0_UP $DP1_UP
			done
		done
	else
		# Non-VF mode

        # Test if DP's are up
        RC_DP0=`portshow xtun $1/12 -fcp -itl -info|sed -n 's/.*rc = \([a-fA-F0-9]*\)/\1/p'`
        RC_DP1=`portshow xtun $1/22 -fcp -itl -info|sed -n 's/.*rc = \([a-fA-F0-9]*\)/\1/p'`

        if [ "$RC_DP0" == 'fffffffc' ]; then
            DP0_UP=0
            $ECHO "Detected DP0 to be down!"
        else
            $ECHO "Detected DP0 to be up!"
        fi
        if [ "$RC_DP1" == 'fffffffc' ]; then
            DP1_UP=0
            $ECHO "Detected DP1 to be down!"
        else
            $ECHO "Detected DP1 to be up!"
        fi

		# Display FTrace Information
		striker_ftrace_c0_ $1
		striker_ftrace_c1_ $1
	
		# Display GE Information 
		for i in `seq 0 9`; do
			striker_ge_cmds_ $1 ge$i
		done
		for i in `seq 0 1`; do
			striker_xge_cmds_ $1 xge$i
		done

		# Display FTNL All Information
		striker_ftnl_show_c0_ $1
		striker_ftnl_show_c1_ $1

		# Display Pool Stats
		striker_ge_pool_stats_ $1 ge0	
		striker_ge_pool_stats_ $1 xge0	
        if [ "$DP0_UP" -eq 1 ]; then
		striker_ve_pool_stats_ $1 12
        else
            $ECHO "Skipping VE Pool Stats due to DP0 down"
        fi
        if [ "$DP1_UP" -eq 1 ]; then
		striker_ve_pool_stats_ $1 22
        else
            $ECHO "Skipping VE Pool Stats due to DP1 down"
        fi
        
        # Display FICON Information
        if [ "$DP0_UP" -eq 1 ]; then
		    striker_ficon_c0_ $1
        else
            $ECHO "Skipping FICON commands due to DP0 down"
        fi
		if [ "$DP1_UP" -eq 1 ]; then
            striker_ficon_c1_ $1
        else
            $ECHO "Skipping FICON commands due to DP1 down"
        fi

		# Display FTNL Debug Information
		striker_ftnl_dbg_c0_ $1
		striker_ftnl_dbg_c1_ $1

		# Display ipsec debug info
		striker_ipsec_dbg_c0_ $1
		striker_ipsec_dbg_c1_ $1

		# Display PDP debug info
		striker_pdp_dbg_c0_ $1
		striker_pdp_dbg_c1_ $1

		# Display IPv4/IPv6 Route debug info
        striker_ip_dbg_c0_ $1
		striker_ip_dbg_c1_ $1

		# Display VE Information
		for i in `seq 12 31`; do
			striker_ve_cmds_ $1 $i $DP0_UP $DP1_UP
		done
	fi
	
	$CHASSISCMD date
}

skybolt_ve_fcp_cmds_() {
	$ECHO ""
	$CHASSISCMD	/fabos/bin/esmcmd $1 xtun $2 -fcp -port -stats -timer
	$CHASSISCMD	/fabos/bin/esmcmd $1 xtun $2 -fcp -port -cfg
	$CHASSISCMD	/fabos/bin/esmcmd $1 xtun $2 -fcp -port -info
	$CHASSISCMD	/fabos/bin/esmcmd $1 xtun $2 -fcp -it -cfg
	$CHASSISCMD	/fabos/bin/esmcmd $1 xtun $2 -fcp -it -info
	$CHASSISCMD	/fabos/bin/esmcmd $1 xtun $2 -fcp -it -stats
	$CHASSISCMD	/fabos/bin/esmcmd $1 xtun $2 -fcp -itn -cfg
	$CHASSISCMD	/fabos/bin/esmcmd $1 xtun $2 -fcp -itn -info
	$CHASSISCMD	/fabos/bin/esmcmd $1 xtun $2 -fcp -itn -stats
	$CHASSISCMD	/fabos/bin/esmcmd $1 xtun $2 -fcp -itl -info
	$CHASSISCMD	/fabos/bin/esmcmd $1 xtun $2 -fcp -itl -cfg
	$CHASSISCMD	/fabos/bin/esmcmd $1 xtun $2 -fcp -itl -stats
	$CHASSISCMD	/fabos/bin/esmcmd $1 xtun $2 -fcp -twb -info
	$CHASSISCMD	/fabos/bin/esmcmd $1 xtun $2 -fcp -twb -cfg
	$CHASSISCMD	/fabos/bin/esmcmd $1 xtun $2 -fcp -twb -stats
	$CHASSISCMD /fabos/bin/esmcmd $1 xtun $2 -fcp -it -stats -info -sid -1 -did -1
	$CHASSISCMD	/fabos/bin/esmcmd $1 xtun $2 -fcp -it -itn -itl -stats -cache
}

skybolt_ve_ficon_cmds_() {
	$ECHO ""
	$CHASSISCMD	/fabos/bin/esmcmd $1 xtun 24 -ficon -info -all
	$CHASSISCMD	/fabos/bin/esmcmd $1 xtun 24 -ficon -stats -all
	$CHASSISCMD	/fabos/bin/esmcmd $1 xtun 24 -ficon -fdpb -all
	$CHASSISCMD	/fabos/bin/esmcmd $1 xtun 24 -ficon -fdpb -info -all
	$CHASSISCMD	/fabos/bin/esmcmd $1 xtun 24 -ficon -fcub -all
	$CHASSISCMD	/fabos/bin/esmcmd $1 xtun 24 -ficon -emul -all
}

skybolt_ve_cmds_() {
	$ECHO ""
	$CHASSISCMD	/fabos/bin/esmcmd $1 fctnl
	$CHASSISCMD	/fabos/bin/esmcmd $1 fc intf
	$CHASSISCMD	/fabos/bin/esmcmd $1 xtun 0 -vem -cfg
	$CHASSISCMD	/fabos/bin/esmcmd $1 xtun 0 -vem -cfg -all
	$CHASSISCMD	/fabos/bin/esmcmd $1 xtun 0 -vem -info
	$CHASSISCMD	/fabos/bin/esmcmd $1 xtun 0 -vem -stats
	for i in `seq 24 43`; do
		skybolt_ve_fcp_cmds_ $1 $i
	done
	skybolt_ve_ficon_cmds_ $1
}
bcm_lag_info()
{
	echo -ne "\n\n"
	sleep 2
	echo -ne "vlan show\n"
	sleep 2
	echo -ne "trunk show\n"
	sleep 2
	echo -ne "exit\n"
	sleep 2
}

skybolt_port_show_() {

	isIPEXT=`$SWITCHCMD /fabos/sbin/extncfg --show | grep " IPEXT"`

	$CHASSISCMD date
	
	$SWITCHCMD /fabos/sbin/extncfg --show
	$ECHO " "

	# Main portshow commands
	$SWITCHCMD	/fabos/cliexec/portshow ipif
	$SWITCHCMD	/fabos/cliexec/portshow iproute
	$SWITCHCMD	/fabos/cliexec/portshow arp
	$SWITCHCMD	/fabos/link_sbin/portcfgge --show
	$SWITCHCMD	/fabos/cliexec/portshow ipsec-policy -i
	$SWITCHCMD	/fabos/cliexec/portshow ipsec-policy -id
	if [ "$isIPEXT" ]
		then
		$SWITCHCMD	/fabos/cliexec/portshow lag
		$SWITCHCMD	/fabos/cliexec/portshow lag --detail
		$SWITCHCMD	/fabos/cliexec/portshow tcl
		$SWITCHCMD	/fabos/cliexec/portshow tcl -d

		else
		$ECHO 'portshow lag               : IPEXT not enabled'
		$ECHO 'portshow lag --detail      : IPEXT not enabled'
		$ECHO 'portshow tcl               : IPEXT not enabled'
		$ECHO 'portshow tcl -d            : IPEXT not enabled'
	fi
	$CHASSISCMD /fabos/cliexec/portshow fciptunnel --hcl-status
	$SWITCHCMD	/fabos/cliexec/portshow fciptunnel -c --ha --config
	$SWITCHCMD	/fabos/cliexec/portshow fciptunnel -c
	$SWITCHCMD	/fabos/cliexec/portshow fciptunnel -c --lifetime
	$SWITCHCMD	/fabos/cliexec/portshow fciptunnel -c --ha --qos
	$SWITCHCMD	/fabos/cliexec/portshow fciptunnel -c --ha --qos --lifetime
	$SWITCHCMD	/fabos/cliexec/portshow fciptunnel -c --perf
	$SWITCHCMD	/fabos/cliexec/portshow fciptunnel -c --perf --lifetime
	$SWITCHCMD	/fabos/cliexec/portshow fciptunnel -cd --ha --qos --tcp
	$SWITCHCMD	/fabos/cliexec/portshow fciptunnel -cd --ha --qos --tcp --lifetime --reset

	# Main portcmd commands
	$SWITCHCMD /fabos/cliexec/portcmd --wtool all show -d

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

	# CLib Debug commands
	$CHASSISCMD	/fabos/bin/esmcmd dbgcmd ft stats
	$CHASSISCMD	/fabos/bin/esmcmd dbgcmd cl
	$CHASSISCMD	/fabos/bin/esmcmd dbgcmd pools
	$CHASSISCMD	/fabos/bin/esmcmd dbgcmd fc bm
	$CHASSISCMD	/fabos/bin/esmcmd dbgcmd dram2

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

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


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

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

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

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

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

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

	# LSM debug commands
	if [ "$isIPEXT" ]
		then
		$CHASSISCMD /fabos/bin/esmcmd dbg0 lsmstats 
		$CHASSISCMD /fabos/bin/esmcmd dbg0 lsmconn -v
		$CHASSISCMD /fabos/bin/esmcmd dbg0 lsmconn -s -v
		$CHASSISCMD /fabos/bin/esmcmd dbg0 lsmstats -pf -a
		$CHASSISCMD /fabos/bin/esmcmd dbg0 lsmstats -g
		$CHASSISCMD /fabos/bin/esmcmd dbg1 lsmstats 
		$CHASSISCMD /fabos/bin/esmcmd dbg1 lsmconn -v
		$CHASSISCMD /fabos/bin/esmcmd dbg1 lsmconn -s -v
		$CHASSISCMD /fabos/bin/esmcmd dbg1 lsmstats -pf -a
		$CHASSISCMD /fabos/bin/esmcmd dbg1 lsmstats -g
		$CHASSISCMD	/fabos/bin/esmcmd dbgcmd udpsock
		$CHASSISCMD	/fabos/bin/esmcmd dbgcmd ovlan_disp
		else
		$ECHO 'esmcmd dbg0 lsmstats       : IPEXT not enabled'
		$ECHO 'esmcmd dbg0 lsmconn -v     : IPEXT not enabled'
		$ECHO 'esmcmd dbg0 lsmconn -s -v  : IPEXT not enabled'
		$ECHO 'esmcmd dbg0 lsmstats -pf -a: IPEXT not enabled'
		$ECHO 'esmcmd dbg0 lsmstats -g    : IPEXT not enabled'
		$ECHO 'esmcmd dbg1 lsmconn -v     : IPEXT not enabled'
		$ECHO 'esmcmd dbg1 lsmconn -s -v  : IPEXT not enabled'
		$ECHO 'esmcmd dbg1 lsmstats       : IPEXT not enabled'
		$ECHO 'esmcmd dbg1 lsmstats -pf -a: IPEXT not enabled'
		$ECHO 'esmcmd dbg1 lsmstats -g    : IPEXT not enabled'
		$ECHO 'esmcmd dbgcmd udpsock      : IPEXT not enabled'
		$ECHO 'esmcmd dbgcmd ovlan_disp   : IPEXT not enabled'
	fi

	# ... add additional debug commands here
	# Display VE Information
	skybolt_ve_cmds_ dbg0
	skybolt_ve_cmds_ dbg1

	for tt in `seq 24 43`; do
		$SWITCHCMD /fabos/cliexec/portstatsshow $tt
		$SWITCHCMD /fabos/cliexec/portregshow $tt
	done

# Dump BCM Front End Port stats
	for k in `seq 0 17`; do
		$SWITCHCMD /fabos/cliexec/portstatsshow ge$k
	done
	#Dump the LAG info and OVLAN info
	bcm_lag_info | /fabos/libexec/bcm.user.proxy

# Dump BCM Back End Port stats

	$CHASSISCMD ptstatsshow	67
	$CHASSISCMD ptstatsshow	68
	$CHASSISCMD ptstatsshow	71
	$CHASSISCMD ptstatsshow	72

	$CHASSISCMD date
}

gige_port_show_() {
  $CHASSISCMD date
  for k in `seq 0 1`; do
	$ECHO "GE port Trace dump" 
	$SWITCHCMD /fabos/cliexec/porttrace $1/ge$k --show all
	$SWITCHCMD /fabos/cliexec/portshow  $1/ge$k
	$SWITCHCMD /fabos/cliexec/portstatsshow  $1/ge$k
# now handled in fcip_ge_all_cmds_()
#	 ""
#	 "portshow ipif $1/ge$k"
#	$SWITCHCMD /fabos/cliexec/portshow  ipif $1/ge$k
#	 ""
#	 "portshow iproute $1/ge$k"
#	$SWITCHCMD /fabos/cliexec/portshow  iproute $1/ge$k
#	 ""
#	 "portshow arp $1/ge$k"
#	$SWITCHCMD /fabos/cliexec/portshow  arp $1/ge$k
	$SWITCHCMD /fabos/cliexec/portshow  fciptunnel $1/ge$k all -credits -params -perf -hist
	$SWITCHCMD /fabos/cliexec/portshow  ficon $1/ge$k all
	$SWITCHCMD /fabos/cliexec/portshow  ficon $1/ge$k 0 -pools
		for tt in `seq 0 7`; do
			$SWITCHCMD /fabos/cliexec/portshow  ficon $1/ge$k $tt -epcb
			
# take out for now - as LS config supportsave time is too long.
#			$ECHO "portshow ficon $1/ge$k $tt -fdpb"
#			$SWITCHCMD /fabos/cliexec/portshow  ficon $1/ge$k $tt -fdpb
#			$ECHO ""
#			$ECHO "portshow ficon $1/ge$k $tt -images"
#			$SWITCHCMD /fabos/cliexec/portshow  ficon $1/ge$k $tt -images
#			$ECHO ""
#			$ECHO "portshow ficon $1/ge$k $tt -emul"
#			$SWITCHCMD /fabos/cliexec/portshow  ficon $1/ge$k $tt -emul
#			$ECHO ""
			$SWITCHCMD /fabos/cliexec/portshow  ftrace $1/ge$k $tt stats
		done
	$ECHO ""
	$ECHO ""
	$ECHO ""
  done

  	for pp in `seq 16 31`; do
		$SWITCHCMD /fabos/cliexec/portregshow  $1/$pp
		
		$CHASSISCMD portcfgvexport $1/$pp

	done

	# Defect 61352 Instrumentation:
	# Once stabilized (in beta, or rc), we may not need these
	# if it affects supportShow's overall timing.
#  	for pp in `seq 40 49`; do
#		$ECHO ""
#		$ECHO "ptdatashow $1/$pp"
#		$CHASSISCMD /fabos/bin/ptdatashow  $1/$pp
#	done
	$CHASSISCMD /fabos/bin/ptdatashow  $1/40
#  	for pp in `seq 90 99`; do
#		$ECHO ""
#		$ECHO "ptdatashow $1/$pp"
#		$CHASSISCMD /fabos/bin/ptdatashow  $1/$pp
#	done
	$CHASSISCMD /fabos/bin/ptdatashow  $1/90

	$CHASSISCMD ptstatsshow	$1/40

	$CHASSISCMD ptstatsshow	$1/90

	$CHASSISCMD ptstatsshow	$1/49 2>&1

	$CHASSISCMD ptstatsshow	$1/99 2>&1

	$CHASSISCMD ptstatsshow	$1/23

	$CHASSISCMD ptstatsshow	$1/73

	$CHASSISCMD ptregshow $1/40

	$CHASSISCMD ptregshow $1/90

	$CHASSISCMD ptregshow $1/49 2>&1

	$CHASSISCMD ptregshow $1/99 2>&1

	$CHASSISCMD ptchipregshow $1/40 

	$CHASSISCMD ptchipregshow $1/90 
  $CHASSISCMD date
}

gige_blade_show_() {
	striker_sent=0

	# Forcing SWITCHCMD to execute in a non-VF mode.
	# Optimized iteration of logical switches will be 
	# handled below.
	ORIGINAL_SWITCHCMD="$SWITCHCMD"
	SWITCHCMD='cmd_nonvf'

	# VF mode is enabled
	if [ -n "$HOME_VF" ]; then
		# Get Configured Logical Switches and Corresponding FIDs 
		LS_FIDS=( `lscfg_test --all | sed 's/^[ \t]*[^ \t]*[ \t]*//;s/[ \t].*//;/[0-9]/!d'`)	
		LS_SWNO=( `lscfg_test --all | grep -E "Base|Logical|Default" | sed 's/^[ \t]*//;s/\([0-9]\).*/\1/;'` )

		# Display GE, ARP, IPIF Information per logical switch
		for (( i=0; i < ${#LS_FIDS[@]}; i++ )); do
			setcontext ${LS_FIDS[$i]} ${LS_SWNO[$i]}

            # Test to see if any GE ports are found for the current LS
            ge_ports=(`switchshow | sed '/FCIP/!d;s/^[ \t]*[^ \t]*[ \t]*//;s/[ \t].*//'`)

            $ECHO "CURRENT CONTEXT -- LS: ${LS_SWNO[$i]}, FID: ${LS_FIDS[$i]}" 
            if [ ${#ge_ports[@]} -eq 0 ]; then
                $ECHO "No GE ports detected"
            else
                fcip_ge_all_cmds_
            fi
		done
    else
        # non-VF mode
	    fcip_ge_all_cmds_
    fi

	SWITCHCMD="$ORIGINAL_SWITCHCMD"

  cd /proc/fabos/blade
  for j in `ls -d [0-9]* | sort -n` ; do
# check for return status stored in $?.
	asic_db_blade_type_ $j
	if [ "$?" -eq 0 ]; then
		if [ "$blade_type" = "marathon" ]; then
			gige_port_show_ $j
		fi

		if [ "$blade_type" = "striker" ]; then
	        SWITCHCMD='cmd_nonvf'
            # send striker based ve commands once
			if [ $striker_sent -eq 0 ]; then
	            # VF mode is enabled
	            if [ -n "$HOME_VF" ]; then
		            # Display Tunnel Information per logical switch
		            for (( i=0; i < ${#LS_FIDS[@]}; i++ )); do
			            setcontext ${LS_FIDS[$i]} ${LS_SWNO[$i]}

                        # Test to see if any VE ports are found for the current LS
                        ve_ports=(`switchshow | sed '/VE/!d;s/^[ \t]*[^ \t]*[ \t]*//;s/^[^ \t]*[ \t]*//;s/[ \t].*//'`)

			            $ECHO "CURRENT CONTEXT -- LS: $i, FID: ${LS_FIDS[$i]}"
                        if [ ${#ve_ports[@]} -eq 0 ]; then
                            $ECHO "No VE ports found"
                        else
			                striker_ve_all_cmds_
                        fi
                    done
                else
				    striker_ve_all_cmds_
			    fi
			    striker_sent=1
            fi
			striker_gige_port_show_ $j
	        SWITCHCMD="$ORIGINAL_SWITCHCMD"
		fi
	fi
  done

}


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


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

  export DB_SILENT_ERR=1
  cd /proc/fabos/blade
  c3regdmpcnt=0
  c2regdmpcnt=0
  c1regdmpcnt=0
  pbregdmpcnt=0
  pbregdumpindex=0
  blsregdmpcnt=0
  blsregdumpindex=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 assigment 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 bladeportmap $i

	asic_db_blade_type_ $i
	if [ "$?" -eq 0 ]; then
		count=0
		while [ $count -lt $num_c3s ] 
		do 
			$ECHO " "
			$ECHO  +++++++++++++++++ Asic Chip "$i"/$count/0 RTE database ++++++++++++++++++++++++
			$CHASSISCMD /fabos/link_bin/asicswdump -s $i -m $count 
			$CHASSISCMD /fabos/link_bin/asicswdump -s $i -m $count -g 5
			$CHASSISCMD /fabos/link_bin/asicswdump -s $i -m $count -g 7
            $ECHO " "
            $ECHO  +++++++++++++++++ Asic Chip "$i"/$count/0 Regdump ++++++++++++++++++++++++
            $CHASSISCMD /fabos/sbin/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_bin/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_bin/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_bin/asicswdump -s $i -m $count
			$ECHO " "
			$ECHO  +++++++++++++++++ Asic Chip "$i"/$count/0 Regdump ++++++++++++++++++++++++
			$CHASSISCMD /fabos/sbin/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_bin/asicswdump -s $i -m $count 
            $ECHO " "
            $ECHO  +++++++++++++++++ Asic Chip "$i"/$count/0 Regdump ++++++++++++++++++++++++
            $CHASSISCMD /fabos/sbin/c1regdump "$i"/$count/0
	    if [ -e /var/regdump.dmp ]
	    then
            $CHASSISCMD mv /var/regdump.dmp /var/c1regdump.dmp."$i".$count
            $CHASSISCMD gzip -f /var/c1regdump.dmp."$i".$count
	    (( c1regdmpcnt += 1 ))
	    fi
	    (( 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
	   if [ "$blade_type" = "striker" ]
	   then
	   let fcipchip=$count+1
	   $CHASSISCMD /fabos/sbin/blsregdump "$i"/$fcipchip/0
	   else
	   $CHASSISCMD /fabos/sbin/blsregdump "$i"/$count/1
	   fi
	   $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_bin/asicswdump -s $i -m $count -c 1 -g 1
			$ECHO  +++++++++++++++++ Asic Chip "$i"/$count/0 STATS dump ++++++++++++++++++++++++
			$CHASSISCMD /fabos/link_bin/asicswdump -s $i -m $count -g 3
            $ECHO " "
            $ECHO  +++++++++++++++++ Asic Chip "$i"/$count/1 Regdump ++++++++++++++++++++++++
	    let pbregdumpindex=$count+2
            $CHASSISCMD /fabos/sbin/pbregdump "$i"/$count/1
            $CHASSISCMD mv /var/regdump.dmp /var/pbregdump.dmp."$i".$pbregdumpindex
            $CHASSISCMD gzip -f /var/pbregdump.dmp."$i".$pbregdumpindex
            (( pbregdmpcnt += 1 ))
			(( 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_bin/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_bin/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_bin/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
			#
			# Reg dump
			#
			$ECHO Saving Regdump +++++++++++++++++++++++++++++++++++++++++++++++++++
			$CHASSISCMD db $slot/$anvil/0 dbg set regdump on
			regdump $i/$anvil/0
			$CHASSISCMD db $slot/$anvil/0 dbg set regdump off
			sleep 5
			sync
			mv /var/regdump.dmp /var/avregdump.dmp.$i.$anvil
			sync
			gzip -f /var/avregdump.dmp.$i.$anvil
			sync
			(( 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

	    if [ "$blade_type" = "striker" -o "$blade_type" = "spike" ]; then
            slot=$i
			$ECHO " "
			$ECHO  ++++++++++++++ Striker/Spike "$i" +++++++++++++++++++++
            striker_filter_
	    fi

	fi
  done
  unset DB_SILENT_ERR

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

	/bin/rm /var/c3regdump*gz
	/bin/rm /var/c3hregdecode
	/bin/rm /var/c3hregcmp
	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
	#
	/bin/cp /fabos/cliexec/c2hregdecode /var/ 
	/bin/cp /fabos/cliexec/c2hregcmp /var/ 
  
	tar -cvPf /tmp/C2REGDUMP.tar /var/c2regdump*gz /var/c2hregdecode /var/c2hregcmp 2> /dev/null

	/bin/rm /var/c2regdump*gz
	/bin/rm /var/c2hregdecode
	/bin/rm /var/c2hregcmp
	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
		tar -cvPf /tmp/AVREGDUMP.tar /var/avregdump*gz
		/bin/rm /var/avregdump*gz
		sync
	else
    $ECHO "No anvil chips on this switch" > /var/avemptyregdump.txt
    tar -cvf /tmp/AVREGDUMP.tar /var/avemptyregdump.txt 2> /dev/null
    /bin/rm /var/avemptyregdump.txt
	sync
	fi

  # Capture the error counters one more time.
	$CHASSISCMD sloterrshow -c2 -r
}

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
	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_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 ] && [ $fcip_on = enabled ] && [ $standby = no ]
  then
	$ECHO ""
	$ECHO "************** Begin GigE Port information ****************"
	$ECHO ""

	$CHASSISCMD date
	if [ $sw_platform = 46 ]
	then
		$ECHO "GE port Trace dump"
		$CHASSISCMD /fabos/cliexec/porttrace --show allblades
		gige_port_show_non_bladed_;
	elif [ $sw_platform = 83 ]
	then
		$ECHO "GE port Trace dump in spike"
		spike_gige_portshow_;
	elif [ $sw_platform = 148 ]
	then
		$ECHO "FCIP port dump in Skybolt"
		skybolt_port_show_;
	else
		gige_blade_show_ $*;
	fi
	$ECHO ""
#	$ECHO "configshow | /bin/grep IF"
#	$CHASSISCMD /fabos/cliexec/configshow | /bin/grep IF
#	$ECHO "configshow | /bin/grep ARP"
#	$CHASSISCMD /fabos/cliexec/configshow | /bin/grep ARP
#	$ECHO "configshow | /bin/grep ROUTE"
#	$CHASSISCMD /fabos/cliexec/configshow | /bin/grep ROUTE
#	$ECHO "configshow | /bin/grep FCIP"
#	$CHASSISCMD /fabos/cliexec/configshow | /bin/grep FCIP
#	$ECHO ""

	$CHASSISCMD 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  +++++++++++++++++++
}

group_show() {
  if [ "$SSAVE" = "TRUE" ]; then
     $ECHO "**** Begin $1 group ****" >> $sshowlog
     date  >> $sshowlog
     cliidx=0
  time $1
     date  >> $sshowlog
     $ECHO "**** End $1 group ****" >> $sshowlog
  else
   $ECHO "**** Begin $1 group ****"
   date
   $1
   date
  $ECHO "**** End $1 group ****"
  fi
}

#
# 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 [ $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 [ $flow_on = enabled ]
  then
   group_show start_flow_cmd
  fi

}

#
# show all port related (port, extended, filter, perfmon groups
#
start_port_show()
{
	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
			# go ahead to call start_fc_port_cmd for PIZZA BOX
			if [ $slot -ne $def_slot ] && [ "$multiBlade" = "FALSE" ]
			then
				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`
				group_show start_fc_port_cmd
			else
				# 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`
						group_show start_fc_port_cmd
					fi
				done
			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
						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`
						group_show start_fc_port_cmd
					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`
								group_show start_fc_port_cmd
							fi
						done
					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";;
        "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";;
        "pm" ) cfg_string="$cfg_string perfmon";;
        "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";;
        "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;;
      "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;;
      "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] [ lines ]"
  else
    syntax="`/bin/basename $0` [ port1 - port2 ] [ lines ]"
  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;
  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;
  ag_on=disabled;
  crypto_on=disabled;
  dce_hsl_on=disabled;
  flow_on=disabled;

  runtime_variable=disabled;

  standby=no;
  # set standby flag
  /fabos/cliexec/hashow | /bin/grep Local | /bin/grep Standby > /dev/null 2>&1
  if [ $? -eq 0 ]; then
	standby=yes;
  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"
	/bin/rm -rf /fabos/link_sbin/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.
    #
    #
    num_matched=`$ECHO $param | /bin/sed 's/[0-9]\{1,\}//'`
    if [ -z $num_matched ] && [ $nlog_set -ne 1 ]
    then
      if  [ "$multiBlade" = "FALSE" ]
      then
	nlog=$param
	nlog_set=1
      else
        if [ "$multiBlade" = "TRUE" ] && [ $slot -eq $def_slot ] \
	       && [ $tempport_set -ne 1 ]
	then
	  slot=$param
	else
	  nlog=$param
	  nlog_set=1
	fi
      fi	  
      shift
      continue
    fi
    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;;
      "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;;
      "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;
	    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;
	    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
    /bin/rm -rf /fabos/link_sbin/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 -c supportshow`
  if [ ${RUN_COUNT} -ge 3 ]
  then
  echo "Supportshow is already running from another connection."
  echo "Please try again later..."
  exit
  fi
  $ECHO "Date:"
  date
  $ECHO""
  $ECHO "Time Zone:"
  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
    start_port_show
    end_tail
    /bin/rm -rf /fabos/link_sbin/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"
    /bin/rm -rf /fabos/link_sbin/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 [ $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
  if [ "$error" = TRUE ]
  then
    /bin/rm -rf /fabos/link_sbin/lscfg_test
    exit 4
  fi

  #
  # execute start_show
  #
  start_show
  start_port_show

  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
}

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 ]
  then
    $ECHO " fcip       $fcip_on"
  else
    $ECHO " fcip       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

}
supportshowcfgshow_error_msg() {
	$ECHO "Command groups:"
	$ECHO -n "os exception port fabric services security network portlog system extend filter perfmon ficon iswitch asic_db ag dce_hsl"
	support_show_disp_crypto
	support_show_disp_iscsi
	support_show_disp_fcip
	/bin/rm -rf /fabos/link_sbin/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";;
    "perfmon" )   sub="pm:1";search="pm";;
    "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;;
	"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";;
    "perfmon" )   sub="pm:0";search="pm";;
    "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;;
    "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@sr:1@sc:1@nt:1@pl:1@sy:1@et:0@fl:0@pm: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"`

if [ -e /fabos/link_sbin/lscfg_test ]
then
	/bin/rm /fabos/link_sbin/lscfg_test
fi
/bin/ln -s /fabos/cliexec/lscfg_util /fabos/link_sbin/lscfg_test 2> /dev/null
export PATH=/fabos/link_bin:/bin:/usr/bin:/sbin:/usr/sbin:/fabos/link_abin:/fabos/link_sbin:/fabos/factory:/fabos/xtool
#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
