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

ECHO="echo"
CHASSISCMD=""
TTY="/dev/null"
SSAVE=FALSE
SS_MODULE=""
cliidx=0
newline=0
#sshowlog=/var/log/sshow.log
sshowlog=/var/log/ssave.sh.log
ssutil_log=/var/log/ssave.sh.log
CAT=/bin/cat
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



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

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

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


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

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


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

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

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

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

ROOTCMD="cmd_root"

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

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

    $ECHO "$SS_MODULE Group End: $1"
    /bin/date
    $ECHO "********************************************************"

    newline=1
    if [ $newline -eq 1 ]
    then
        $ECHO -n "." > $TTY
    fi

    RETVAL=`echo $?`

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



}
EXEC_GROUP='group_show'


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

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

######################################################################################
# NAME
#    catproc (CATPROC) - display proc file entries
#
# SYNOPSIS
#    $CATFILE full_procfile_name_path
#
# DESCRIPTION
#   Similar to CATFILE but supports wildcard characters
#
# OPERANDS
#    full_procfile_name_path
#####################################################################################
catproc()
{
  $CHASSISCMD  $CAT $*
}
CATPROC="catproc"

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


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

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

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

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

}

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

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

  $CHASSISCMD /bin/hostname

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

  $CHASSISCMD /bin/rpm -qa

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

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

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

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

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

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

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


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

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

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

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

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

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

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

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

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

	/bin/echo "$_abc"
}

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

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

}
start_fcoe_cmd() {
    #
    # reusing cmd_nonvf
    #

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

    LSCMD="cmd_nonvf"
    if [ -n "$HOME_VF" ]; then

        CUR_LS_INST=( `lscfg_test --current `)
        LS_FABID=`lscfg_test --fid $CUR_LS_INST`

        setcontext $LS_FABID $CUR_LS_INST
    fi

    $ECHO "FCOE SHOW COMMANDS"

    $LSCMD /fabos/bin/fcoe --show -fabric

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

    $LSCMD /fabos/bin/fcoe --show -login

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

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

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

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

    $ECHO "FCOE DEBUG SHOW COMMANDS"

    $LSCMD /fabos/bin/fcoedebugshow --ethporttbl

    $LSCMD /fabos/bin/fcoedebugshow --bindtbl

    $LSCMD /fabos/bin/fcoedebugshow --vxporttbl

    $LSCMD /fabos/bin/fcoedebugshow --swinfo

    $LSCMD /fabos/bin/fcoedebugshow --globalinfo

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

    if [ $CUR_LS_INST = $DEFAULT_SWNO ]; then

    $ECHO "FCOE DRIVER DBG COMMANDS"

    $CHASSISCMD /fabos/rbin/fcoe_dbg fcoe show allports

    $CHASSISCMD /fabos/rbin/fcoe_dbg fcoe show pending

    $CHASSISCMD /fabos/rbin/fcoe_dbg fcoe show devices

    $CHASSISCMD /fabos/rbin/fcoe_dbg fcoe show swcfg

    $CHASSISCMD /fabos/rbin/fcoe_dbg fcoe show portstate

    $CHASSISCMD /fabos/rbin/fcoe_dbg fcoe show ha

    $CHASSISCMD /fabos/rbin/fcoe_dbg fcoe show ha_recov_dead_np

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

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

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

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

    $CHASSISCMD /fabos/rbin/fcoe_dbg fcoe show servicestats

    $CHASSISCMD /fabos/rbin/fcoe_dbg fcoe show direct

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

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

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

    $CHASSISCMD /fabos/rbin/fcoe_dbg fcoe show sw_port_bmp

    $CHASSISCMD /fabos/rbin/fcoe_dbg fcoe show vf_fcf_mac

    $CHASSISCMD /fabos/rbin/fcoe_dbg fcoe show vf_fcf_mac_pool

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

start_ucid_cmd() {
    #
    # reusing cmd_nonvf
    #

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

    LSCMD="cmd_nonvf"
    if [ -n "$HOME_VF" ]; then

        CUR_LS_INST=( `lscfg_test --current `)
        LS_FABID=`lscfg_test --fid $CUR_LS_INST`

        setcontext $LS_FABID $CUR_LS_INST
    fi

    $ECHO "UCID SHOW COMMANDS"

    $LSCMD /fabos/bin/ucidshow --haintent

    $LSCMD /fabos/bin/ucidshow --ethporttbl
fi
}

start_fc_fabric_cmd() {

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

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

  $SWITCHCMD /fabos/cliexec/fabricshow -version

  $SWITCHCMD /fabos/cliexec/dom

  $SWITCHCMD /fabos/cliexec/islshow

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

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

	$CHASSISCMD lfmlog --dump
  fi

  $SWITCHCMD /fabos/cliexec/trunkshow

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

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

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

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

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

  # portzoneshow 
  $SWITCHCMD /fabos/cliexec/portzoneshow

  # portcamshow 
  $SWITCHCMD /fabos/cliexec/portcamshow

  $SWITCHCMD /fabos/cliexec/cfgsize

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

  $SWITCHCMD /fabos/cliexec/cfgshow --verbose

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

  $SWITCHCMD /fabos/link_abin/defzone --show

  $SWITCHCMD /fabos/link_bin/zone --show

  # bcastshow 
  $SWITCHCMD /fabos/cliexec/bcastshow

  # rcssmshow 
  $SWITCHCMD /fabos/cliexec/rcssmshow

  # rcsinfoshow 
  $SWITCHCMD /fabos/cliexec/rcsinfoshow

  # rcsregistryshow 
  $SWITCHCMD /fabos/cliexec/rcsregistryshow

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

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

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

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

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

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

  $SWITCHCMD /fabos/cliexec/fcplogshow

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

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

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

  $SWITCHCMD /fabos/cliexec/topologyshow -1

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

# fabchassisshow
  $CHASSISCMD /fabos/cliexec/fabchassisshow

#
# Defect 800338: move fcprlsprobe command at the end as it can lead to potential timeout
# 		of SSHOW_FABRIC SS in a switch with large number of F ports

# 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

}

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

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

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

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

start_security_cmd() {

  $SWITCHCMD authUtil --show

  $SWITCHCMD /fabos/link_abin/fddCfg --showall

  $SWITCHCMD /fabos/cliexec/secpolicydump

  $SWITCHCMD /fabos/cliexec/secstatsshow

  $SWITCHCMD /fabos/cliexec/secglobalshow

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

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

  $CHASSISCMD /fabos/link_abin/ldapcfg --show

  $CHASSISCMD /fabos/link_abin/seccryptocfg --show

  $CHASSISCMD /fabos/link_sbin/seccertmgmt show -all  

  $SWITCHCMD /fabos/link_sbin/secactivesize

  $SWITCHCMD /fabos/link_sbin/secdefinesize

  $CHASSISCMD /fabos/link_bin/ipaddrshow

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

  $CHASSISCMD /fabos/link_abin/fipscfg --show

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

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

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

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

}

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

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

  $CHASSISCMD /sbin/arp -n

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

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

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

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

  $CHASSISCMD /sbin/ip -s link

  $CHASSISCMD /sbin/ip -s addr

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

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

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

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

  $CHASSISCMD /fabos/link_bin/netstat -i 

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

  $CHASSISCMD /fabos/link_bin/netstat -nap

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

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

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

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

}

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

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

start_system_cmd() {

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

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

  $CHASSISCMD /sbin/chkconfig

  $CHASSISCMD firmwareshow -v

  $CHASSISCMD /fabos/cliexec/firmwareshow --history

  $CHASSISCMD firmwaredownloadstatus

  $CATFILE /etc/.pd_data

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

  $CHASSISCMD /fabos/cliexec/dbgshow

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

  if [ $standby = no ]
  then

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

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

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

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

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

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

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

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

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

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

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

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

  $SWITCHCMD /fabos/cliexec/portcfgshow

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

  $SWITCHCMD /fabos/cliexec/sfpshow -tuning

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

  # belongs in mgt group when we get one
  #$CHASSISCMD /fabos/cliexec/agtcfgshow
  if [ "$SSAVE" = "TRUE" ]; then
      $CHASSISCMD /fabos/libexec/snmpdsupportshow
  fi

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

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

  $CHASSISCMD /fabos/cliexec/emtraceshow

  $CHASSISCMD /fabos/cliexec/emtraceshow2

  $CHASSISCMD /fabos/cliexec/emhsmtraceshow

  $CHASSISCMD /fabos/cliexec/systraceshow -d

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

  $CHASSISCMD timeout

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

  # 13. portswapshow()
  $CHASSISCMD /fabos/cliexec/portswapshow

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

  $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 "===================================================================="

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


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

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

  # list /var/log dir
  $CHASSISCMD /bin/ls -l /var/log
 fi
	
  # lscfg
	if [ $standby = no ] 
	then
		$CHASSISCMD lscfg --show 2>&1
		$CHASSISCMD lscfg --show -ge 2>&1
	fi

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

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
	else
		str=""
		if [ "$HOME_VF" = "128" ]
		then
			user_ports=`getUserPortListContext 0 -list`
		else
			user_ports=`getUserPortList 0 -list`
		fi
		if [ "$user_ports" == NO_USER_PORTS ]
		then
			return
		fi
	fi

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

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

start_iswitch_cmd() {

#  isw_platform=`/sbin/sin 2>/dev/null | /bin/grep SWBD | /usr/bin/cut -d ' ' -f 2 | /usr/bin/cut -c 5-6`
   isw_platform=$( /sbin/sin 2>/dev/null | sed -n 's/^.*SWBD\([^,]*\),.*/\1/p' )
	#FC Routing service not supported in AMP
	if [ $isw_platform == 171 ]
	then
		return
	fi
  if [ $isw_platform == 42 ] || [ $isw_platform == 46 ] || [ $isw_platform == 62 ] || [ $isw_platform == 64 ] || [ $isw_platform == 66 ] || [ $isw_platform == 77 ] || [ $isw_platform == 83 ] || [ $isw_platform == 92 ] || [ $isw_platform == 109 ] || [ $isw_platform == 117 ] || [ $isw_platform == 133 ] || [ $isw_platform == 129 ] || [ $isw_platform == 130 ] || [ $isw_platform == 141 ] || [ $isw_platform == 142 ] || [ $isw_platform == 149 ] || [ $isw_platform == 148 ] || [ $isw_platform == 150 ] || [ $isw_platform == 156 ] || [ $isw_platform == 157 ] || [ $isw_platform == 158 ] || [ $isw_platform == 67 ] || [ $isw_platform == 118 ] || [ $isw_platform == 161 ] || [ $isw_platform == 162 ] || [ $isw_platform == 165 ] || [ $isw_platform == 166 ] || [ $isw_platform == 167 ] || [ $isw_platform == 173 ] || [ $isw_platform == 178 ]
  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

    $BASESWITCHCMD /fabos/cliexec/fcrdbgcmds --spm

    $BASESWITCHCMD /fabos/cliexec/fcrdbgcmds --lsdb

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

iscsi_port_() {

  str=$slot/ge
  int_port_st=24

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

  done
}

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

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

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

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

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

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

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

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

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

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

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

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

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

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

		(( port += 1 ))
	done
}

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

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

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

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

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

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

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

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

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

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

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

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

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

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

}

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

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_rbin/ptstatsshow $blport
		$ECHO ""
		$ECHO "CMD: ptregshow " $blport
		$ECHO ""
		/fabos/link_rbin/ptregshow $blport
		ob1port=`expr $ob1port \+ 1`
		if [ $ob1port -eq 4 ]
		then
			ob1port=0
			ob1id=`expr $ob1id \+ 1`
		fi
	done

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

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

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

asic_db_blade_type_() {

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

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

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

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


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 /bin/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 /bin/date
}

extn_ve_cmds_() {
	# VE Commands
	$ECHO ""
	$CHASSISCMD	/fabos/bin/esmcmd dbgcmd fctnl
	$CHASSISCMD	/fabos/bin/esmcmd dbgcmd fc intf clear
	$CHASSISCMD /fabos/bin/esmcmd dbgcmd blzrint all clear
	$CHASSISCMD	/fabos/bin/esmcmd dbgcmd xtun 0 -vem -cfg -all
	$CHASSISCMD	/fabos/bin/esmcmd dbgcmd xtun 0 -vem -info
	$CHASSISCMD	/fabos/bin/esmcmd dbgcmd xtun 0 -vem -stats
	$CHASSISCMD	/fabos/bin/esmcmd dbgcmd xtun 0 -ficon -info -all
}

#
# These are more verbose commands that we will conditionally issue for Harpoon blade VE ports.
# We will only issue the commands if there is a configured tunnel. For emulation commands, 
# we will only issue the commands if an emulation feature is present. We will always issue the
# commands to both DPs on this slot. 
#
extn_emul_cmds_harp() {
	sl=$1
	ve_start=$2
	ve_end=$3

	ve_def=0
	fw=0
	ostp=0
	fic=0

	$ECHO extn_emul_cmds_harp ve start/end=$ve_start/$ve_end
	# FCP Commands
	$ECHO ""
	for ve in `seq $ve_start $ve_end`; do
		ve_def=$(/fabos/cliexec/portcfgshow fciptunnel $sl/$ve --all-ls | /bin/grep -c "Tunnel: VE-Port")
		if [ $ve_def -gt 0 ]; then
			fw=$(/fabos/cliexec/portcfgshow fciptunnel $sl/$ve --all-ls | /bin/grep "Fastwrite" | /bin/grep -c "Enabled")
			ostp=$(/fabos/cliexec/portcfgshow fciptunnel $sl/$ve --all-ls | /bin/grep "Tape Pipelining" | /bin/grep -c "Read")
			fic=$(/fabos/cliexec/portcfgshow fciptunnel $sl/$ve --all-ls | /bin/grep "FICON"| /bin/grep -c "Enabled")
		else
			fw=0
			ostp=0
			fic=0
		fi
		if [ $ve_def -gt 0 ]; then
			$CHASSISCMD /fabos/bin/esmcmd dbg $sl/dp0 xtun $ve -fcp -port -stats -timer -cfg -info
			$CHASSISCMD /fabos/bin/esmcmd dbg $sl/dp1 xtun $ve -fcp -port -stats -timer -cfg -info
			$CHASSISCMD /fabos/bin/esmcmd dbg $sl/dp0 xtun $ve -fcp -it -stats -info -sid -1 -did -1
			$CHASSISCMD /fabos/bin/esmcmd dbg $sl/dp1 xtun $ve -fcp -it -stats -info -sid -1 -did -1
			$CHASSISCMD /fabos/bin/esmcmd dbg $sl/dp0 xtun $ve -fcp -it -itn -info -stats -cfg
			$CHASSISCMD /fabos/bin/esmcmd dbg $sl/dp1 xtun $ve -fcp -it -itn -info -stats -cfg
			if [ $fw -gt 0 ]; then
				$CHASSISCMD /fabos/bin/esmcmd dbg $sl/dp0 xtun $ve -fcp -itl -twb -info -stats -cfg
				$CHASSISCMD /fabos/bin/esmcmd dbg $sl/dp1 xtun $ve -fcp -itl -twb -info -stats -cfg
				$CHASSISCMD /fabos/bin/esmcmd dbg $sl/dp0 xtun $ve -fcp -it -itn -stats -cache
				$CHASSISCMD /fabos/bin/esmcmd dbg $sl/dp1 xtun $ve -fcp -it -itn -stats -cache
				$CHASSISCMD /fabos/bin/esmcmd dbg $sl/dp0 xtun $ve -fcp -itl -stats -cache
				$CHASSISCMD /fabos/bin/esmcmd dbg $sl/dp1 xtun $ve -fcp -itl -stats -cache
			else
				if [ $ostp -gt 0 ]; then
					$CHASSISCMD /fabos/bin/esmcmd dbg $sl/dp0 xtun $ve -fcp -itl -twb -info -stats -cfg
					$CHASSISCMD /fabos/bin/esmcmd dbg $sl/dp1 xtun $ve -fcp -itl -twb -info -stats -cfg
					$CHASSISCMD /fabos/bin/esmcmd dbg $sl/dp0 xtun $ve -fcp -it -itn -stats -cache
					$CHASSISCMD /fabos/bin/esmcmd dbg $sl/dp1 xtun $ve -fcp -it -itn -stats -cache
					$CHASSISCMD /fabos/bin/esmcmd dbg $sl/dp0 xtun $ve -fcp -itl -stats -cache
					$CHASSISCMD /fabos/bin/esmcmd dbg $sl/dp1 xtun $ve -fcp -itl -stats -cache
				fi
			fi
			if [ $fic -gt 0 ]; then
				$CHASSISCMD	/fabos/bin/esmcmd dbg $sl/dp0 xtun $ve -ficon -stats
				$CHASSISCMD	/fabos/bin/esmcmd dbg $sl/dp0 xtun $ve -ficon -fdpb
				$CHASSISCMD	/fabos/bin/esmcmd dbg $sl/dp0 xtun $ve -ficon -fcub
				$CHASSISCMD	/fabos/bin/esmcmd dbg $sl/dp0 xtun $ve -ficon -emul
				$CHASSISCMD	/fabos/bin/esmcmd dbg $sl/dp1 xtun $ve -ficon -stats
				$CHASSISCMD	/fabos/bin/esmcmd dbg $sl/dp1 xtun $ve -ficon -fdpb
				$CHASSISCMD	/fabos/bin/esmcmd dbg $sl/dp1 xtun $ve -ficon -fcub
				$CHASSISCMD	/fabos/bin/esmcmd dbg $sl/dp1 xtun $ve -ficon -emul
			fi
		fi
	done
}

extn_emul_cmds_sb() {
	ve_start=$1
	ve_end=$2

	ve_def=0
	fw=0
	ostp=0
	fic=0

	$ECHO extn_emul_cmds_sb ve start/end=$ve_start/$ve_end
	# FCP Commands
	$ECHO ""
	for ve in `seq $ve_start $ve_end`; do
		ve_def=$(/fabos/cliexec/portcfgshow fciptunnel $ve --all-ls | /bin/grep -c "Tunnel: VE-Port")
		if [ $ve_def -gt 0 ]; then
			fw=$(/fabos/cliexec/portcfgshow fciptunnel $ve --all-ls | /bin/grep Fastwrite | /bin/grep -c "Enabled")
			ostp=$(/fabos/cliexec/portcfgshow fciptunnel $ve --all-ls | /bin/grep "Tape Pipelining" | /bin/grep -c "Read")
			fic=$(/fabos/cliexec/portcfgshow fciptunnel $ve --all-ls | /bin/grep "FICON"| /bin/grep -c "Enabled")
		else
			fw=0
			ostp=0
			fic=0
		fi
		$ECHO extn_emul_cmds_sb ve=$ve ve_def=$ve_def fw=$fw ostp=$ostp fic=$fic
		if [ $ve_def -gt 0 ]; then
			$CHASSISCMD /fabos/bin/esmcmd dbg dp0 xtun $ve -fcp -port -stats -timer -cfg -info
			$CHASSISCMD /fabos/bin/esmcmd dbg dp1 xtun $ve -fcp -port -stats -timer -cfg -info
			$CHASSISCMD /fabos/bin/esmcmd dbg dp0 xtun $ve -fcp -it -stats -info -sid -1 -did -1
			$CHASSISCMD /fabos/bin/esmcmd dbg dp1 xtun $ve -fcp -it -stats -info -sid -1 -did -1
			$CHASSISCMD /fabos/bin/esmcmd dbg dp0 xtun $ve -fcp -it -itn -info -stats -cfg
			$CHASSISCMD /fabos/bin/esmcmd dbg dp1 xtun $ve -fcp -it -itn -info -stats -cfg
			if [ $fw -gt 0 ]; then
				$CHASSISCMD /fabos/bin/esmcmd dbg dp0 xtun $ve -fcp -itl -twb -info -stats -cfg
				$CHASSISCMD /fabos/bin/esmcmd dbg dp1 xtun $ve -fcp -itl -twb -info -stats -cfg
				$CHASSISCMD /fabos/bin/esmcmd dbg dp0 xtun $ve -fcp -it -itn -stats -cache
				$CHASSISCMD /fabos/bin/esmcmd dbg dp1 xtun $ve -fcp -it -itn -stats -cache
				$CHASSISCMD /fabos/bin/esmcmd dbg dp0 xtun $ve -fcp -itl -stats -cache
				$CHASSISCMD /fabos/bin/esmcmd dbg dp1 xtun $ve -fcp -itl -stats -cache
			else
				if [ $ostp -gt 0 ]; then
					$CHASSISCMD /fabos/bin/esmcmd dbg dp0 xtun $ve -fcp -itl -twb -info -stats -cfg
					$CHASSISCMD /fabos/bin/esmcmd dbg dp1 xtun $ve -fcp -itl -twb -info -stats -cfg
					$CHASSISCMD /fabos/bin/esmcmd dbg dp0 xtun $ve -fcp -it -itn -stats -cache
					$CHASSISCMD /fabos/bin/esmcmd dbg dp1 xtun $ve -fcp -it -itn -stats -cache
					$CHASSISCMD /fabos/bin/esmcmd dbg dp0 xtun $ve -fcp -itl -stats -cache
					$CHASSISCMD /fabos/bin/esmcmd dbg dp1 xtun $ve -fcp -itl -stats -cache
				fi
			fi
			if [ $fic -gt 0 ]; then
				$CHASSISCMD	/fabos/bin/esmcmd dbg dp0 xtun $ve -ficon -stats
				$CHASSISCMD	/fabos/bin/esmcmd dbg dp0 xtun $ve -ficon -fdpb
				$CHASSISCMD	/fabos/bin/esmcmd dbg dp0 xtun $ve -ficon -fcub
				$CHASSISCMD	/fabos/bin/esmcmd dbg dp0 xtun $ve -ficon -emul
				$CHASSISCMD	/fabos/bin/esmcmd dbg dp1 xtun $ve -ficon -stats
				$CHASSISCMD	/fabos/bin/esmcmd dbg dp1 xtun $ve -ficon -fdpb
				$CHASSISCMD	/fabos/bin/esmcmd dbg dp1 xtun $ve -ficon -fcub
				$CHASSISCMD	/fabos/bin/esmcmd dbg dp1 xtun $ve -ficon -emul
			fi
		fi
	done
}

extn_emul_cmds_aw() {
	ve_start=$1
	ve_end=$2

	ve_def=0
	fw=0
	ostp=0
	fic=0

	# FCP Commands
	$ECHO extn_emul_cmds_aw ve start/end=$ve_start/$ve_end
	$ECHO ""
	for ve in `seq $ve_start $ve_end`; do
		ve_def=$(/fabos/cliexec/portcfgshow fciptunnel $ve | /bin/grep -c "Tunnel: VE-Port")
		if [ $ve_def -gt 0 ]; then
			fw=$(/fabos/cliexec/portcfgshow fciptunnel $ve | /bin/grep "Fastwrite" | /bin/grep -c "Enabled")
			ostp=$(/fabos/cliexec/portcfgshow fciptunnel $ve | /bin/grep "Tape Pipelining" | /bin/grep -c "Read")
			fic=$(/fabos/cliexec/portcfgshow fciptunnel $ve | /bin/grep "FICON"| /bin/grep -c "Enabled")
		else
			fw=0
			ostp=0
			fic=0
		fi
		if [ $ve_def -gt 0 ]; then
			$CHASSISCMD /fabos/bin/esmcmd dbg dp0 xtun $ve -fcp -port -stats -timer -cfg -info
			$CHASSISCMD /fabos/bin/esmcmd dbg dp0 xtun $ve -fcp -it -stats -info -sid -1 -did -1
			$CHASSISCMD /fabos/bin/esmcmd dbg dp0 xtun $ve -fcp -it -itn -info -stats -cfg
			if [ $fw -gt 0 ]; then
				$CHASSISCMD /fabos/bin/esmcmd dbg dp0 xtun $ve -fcp -itl -twb -info -stats -cfg
				$CHASSISCMD /fabos/bin/esmcmd dbg dp0 xtun $ve -fcp -it -itn -stats -cache
				$CHASSISCMD /fabos/bin/esmcmd dbg dp0 xtun $ve -fcp -itl -stats -cache
			else
				if [ $ostp -gt 0 ]; then
					$CHASSISCMD /fabos/bin/esmcmd dbg dp0 xtun $ve -fcp -itl -twb -info -stats -cfg
					$CHASSISCMD /fabos/bin/esmcmd dbg dp0 xtun $ve -fcp -it -itn -stats -cache
					$CHASSISCMD /fabos/bin/esmcmd dbg dp0 xtun $ve -fcp -itl -stats -cache
				fi
			fi
			if [ $fic -gt 0 ]; then
				$CHASSISCMD	/fabos/bin/esmcmd dbg dp0 xtun $ve -ficon -stats
				$CHASSISCMD	/fabos/bin/esmcmd dbg dp0 xtun $ve -ficon -fdpb
				$CHASSISCMD	/fabos/bin/esmcmd dbg dp0 xtun $ve -ficon -fcub
				$CHASSISCMD	/fabos/bin/esmcmd dbg dp0 xtun $ve -ficon -emul
			fi
		fi
	done
}

extn_port_show_() {

	harpoonsPresent=0

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

	$CHASSISCMD /bin/date
	
	# Ignore MAPS requests until the support save is done. 
	$CHASSISCMD /fabos/bin/esmcmd cli-exclusive enable
	
	$SWITCHCMD /fabos/sbin/extncfg --show
	$ECHO " "
	
	# Main portshow commands
	$SWITCHCMD	/fabos/cliexec/portshow ipif
	$SWITCHCMD	/fabos/cliexec/portshow iproute
	$SWITCHCMD	/fabos/cliexec/portshow arp
	$CHASSISCMD	/fabos/link_sbin/portcfgge --show
	$SWITCHCMD	/fabos/cliexec/portshow ipsec-policy -i
	$SWITCHCMD	/fabos/cliexec/portshow ipsec-policy -id
	if [ "$isIPEXT" ]
		then
		$SWITCHCMD	/fabos/cliexec/portshow lag
		$SWITCHCMD	/fabos/cliexec/portshow lag --detail
		$CHASSISCMD	/fabos/cliexec/portshow tcl
		$CHASSISCMD	/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
	$CHASSISCMD /fabos/cliexec/portshow fciptunnel --all-ls -c --ha --config
	$CHASSISCMD /fabos/cliexec/portshow fciptunnel --all-ls -c
	$CHASSISCMD /fabos/cliexec/portshow fciptunnel --all-ls -c --lifetime
	$CHASSISCMD /fabos/cliexec/portshow fciptunnel --all-ls -c --ha --qos
	$CHASSISCMD /fabos/cliexec/portshow fciptunnel --all-ls -c --ha --qos --lifetime
	$CHASSISCMD /fabos/cliexec/portshow fciptunnel --all-ls -c --perf
	$CHASSISCMD /fabos/cliexec/portshow fciptunnel --all-ls -c --perf --lifetime
	$CHASSISCMD /fabos/cliexec/portshow fciptunnel --all-ls -cd --ha --qos --tcp
	$CHASSISCMD /fabos/cliexec/portshow fciptunnel --all-ls -cd --ha --qos --tcp --lifetime --reset
	# Main portcmd commands
	$SWITCHCMD /fabos/cliexec/portcmd --wtool all show -d

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

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

	# CLib Debug commands
	$CHASSISCMD	/fabos/bin/esmcmd dbgcmd ft stats
	$CHASSISCMD	/fabos/bin/esmcmd dbgcmd cl
	$CHASSISCMD /fabos/bin/esmcmd dbgcmd clcfg show_stats
	$CHASSISCMD	/fabos/bin/esmcmd dbgcmd pools
	if [ $sw_platform = 178 ]; then
		$CHASSISCMD	/fabos/bin/esmcmd dbgcmd auras
	fi
	$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
	$CHASSISCMD	/fabos/bin/esmcmd dbgcmd tcpconn -l -e
	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
		$CHASSISCMD	/fabos/bin/esmcmd dbgcmd tcpconn -comov
		$CHASSISCMD	/fabos/bin/esmcmd dbgcmd tcpconn -e -comov
		$CHASSISCMD	/fabos/bin/esmcmd dbgcmd tcpconn -h -comov
		$CHASSISCMD	/fabos/bin/esmcmd dbgcmd tcpconn -h -comov_fail
		$CHASSISCMD	/fabos/bin/esmcmd dbgcmd tcpconn -h -e -comov
		$CHASSISCMD	/fabos/bin/esmcmd dbgcmd tcpconn -h -e -comov_fail
		$CHASSISCMD	/fabos/bin/esmcmd dbgcmd tcpconn -e -dpdp
		$CHASSISCMD	/fabos/bin/esmcmd dbgcmd tcpconn -l -e -dpdp
		$CHASSISCMD	/fabos/bin/esmcmd dbgcmd lan_dest_ports
		else
		$ECHO 'esmcmd dbgcmd tcpconn lan/comov: IPEXT not enabled'
	fi
	if [ "$isIPEXT" ]
		then
		$CHASSISCMD /fabos/bin/esmcmd dbgcmd cmvstats -e
		else 
		$ECHO 'esmcmd dbgcmd cmvstats -e: 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
	$CHASSISCMD	/fabos/bin/esmcmd dbgcmd show_pko_flow

	# 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 ipsecconfig
	$CHASSISCMD	/fabos/bin/esmcmd dbgcmd ipsecfpga
	$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 -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

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

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

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

	if [ $sw_platform = 148 ]; then
		extn_ve_cmds_
		extn_emul_cmds_sb 24 43
	elif [ $sw_platform = 178 ]; then
		extn_ve_cmds_
		extn_emul_cmds_aw 12 15
	elif [ $sw_platform = 165 -o $sw_platform = 166 ]; then
		ve_cmds=1
		cd /proc/fabos/blade
		for slotNum in `ls -d [0-9]* | sort -n` ; do
			asic_db_blade_type_ $slotNum
			if [ "$?" -eq 0 ]; then
				if [ "$blade_type" = "harpoon" ]; then
					if [ $ve_cmds -gt 0 ]; then
						extn_ve_cmds_
						ve_cmds=0
					fi
					extn_emul_cmds_harp $slotNum 16 35
				fi
			fi
		done
	fi

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

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

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

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

	$CHASSISCMD /bin/date
}

amp_port_show_() {

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

	$CHASSISCMD /bin/date

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

	if [ "$isAMP" ] && [ $ampdp0_on = enabled ]
	then
		$CHASSISCMD esmcmd -dp0 dump
		$CHASSISCMD esmcmd -dp0 blazer fpl-xmc
		$CHASSISCMD	esmcmd dbg0 ft stats
		$CHASSISCMD	esmcmd dbg0 cl
		$CHASSISCMD	esmcmd dbg0 pools
		$CHASSISCMD	esmcmd dbg0 dram2
		$CHASSISCMD esmcmd dbg0 solo debug_stats
		$CHASSISCMD esmcmd dbg0 solo debug_fw_ver 
		$CHASSISCMD esmcmd dbg0 solo resources 
		$CHASSISCMD esmcmd dbg0 solo show_limits 
		$CHASSISCMD esmcmd dbg0 solo mp -resource 
		$CHASSISCMD esmcmd dbg0 solo src_clk -show_ltcy
		$CHASSISCMD esmcmd dbg0 solo src_clk -get
		$CHASSISCMD esmcmd dbg0 solo rate_pred -table -short
		$CHASSISCMD esmcmd dbg0 solo dmd_rate -timebase 1sec
		$CHASSISCMD esmcmd dbg0 solo dmd_rate -timebase 5min
		$CHASSISCMD esmcmd dbg0 solo dmd_rate -timebase all
		$CHASSISCMD esmcmd dbg0 solo dmd_rate -timebase gran
		$CHASSISCMD esmcmd dbg0 solo -pin flow_show
		$CHASSISCMD esmcmd dbg0 solo stats
		$CHASSISCMD esmcmd dbg0 solo stats -timebase rt
		$CHASSISCMD esmcmd dbg0 solo stats -timebase 1sec
		$CHASSISCMD esmcmd dbg0 solo stats -timebase 1min
		$CHASSISCMD esmcmd dbg0 solo stats -timebase 5min
		$CHASSISCMD esmcmd dbg0 solo stats -timebase gran
		$CHASSISCMD esmcmd dbg0 solo scsicmd
		$CHASSISCMD esmcmd dbg0 solo scsicmd -timebase rt
		$CHASSISCMD esmcmd dbg0 solo scsicmd -timebase gran
		$CHASSISCMD esmcmd dbg0 solo fabltncy
		$CHASSISCMD esmcmd dbg0 solo fabltncy -timebase rt
		$CHASSISCMD esmcmd dbg0 solo fabltncy -timebase gran
		$CHASSISCMD esmcmd dbg0 solo fabltncy ooo
		$CHASSISCMD esmcmd dbg0 solo fabltncy ooo -timebase rt
		$CHASSISCMD esmcmd dbg0 solo fabltncy ooo -timebase gran
		$CHASSISCMD esmcmd dbg0 solo scsicmd ooo -timebase all
		$CHASSISCMD esmcmd dbg0 solo scsicmd ooo -timebase gran
		$CHASSISCMD esmcmd dbg0 solo ooo
		$CHASSISCMD esmcmd dbg0 solo ofl-rgl
		$CHASSISCMD esmcmd dbg0 solo re-grp-info
		$CHASSISCMD esmcmd dbg0 solo re-rule-info -all
		$CHASSISCMD esmcmd dbg0 solo mp -resource
		$CHASSISCMD esmcmd dbg0 solo mp -lu_wwn_hash_table
		$CHASSISCMD esmcmd dbg0 solo mp -global
		$CHASSISCMD esmcmd dbg0 solo it_info 
		$CHASSISCMD esmcmd dbg0 solo mp -flow_debug
		$CHASSISCMD esmcmd dbg0 solo mp -sid "*" -did "*" -lun "*" -info
		$CHASSISCMD esmcmd dbg0 solo timer_stat
		$CHASSISCMD esmcmd dbg0 solo str_dbg_get
        $CHASSISCMD esmcmd dbg0 solo trace info
        $CHASSISCMD esmcmd dbg0 solo iov_summary
	fi
	if [ "$isAMP" ] && [ $ampdp1_on = enabled ]
	then
		$CHASSISCMD esmcmd -dp1 dump
		$CHASSISCMD esmcmd -dp1 blazer fpl-xmc
		$CHASSISCMD	esmcmd dbg1 ft stats
		$CHASSISCMD	esmcmd dbg1 cl
		$CHASSISCMD	esmcmd dbg1 pools
		$CHASSISCMD	esmcmd dbg1 dram2
		$CHASSISCMD esmcmd dbg1 solo debug_stats
		$CHASSISCMD esmcmd dbg1 solo debug_fw_ver 
		$CHASSISCMD esmcmd dbg1 solo resources 
		$CHASSISCMD esmcmd dbg1 solo mp -resource 
		$CHASSISCMD esmcmd dbg1 solo show_limits 
		$CHASSISCMD esmcmd dbg1 solo src_clk -show_ltcy
		$CHASSISCMD esmcmd dbg1 solo src_clk -get
		$CHASSISCMD esmcmd dbg1 solo rate_pred -table -short
		$CHASSISCMD esmcmd dbg1 solo dmd_rate -timebase 1sec
		$CHASSISCMD esmcmd dbg1 solo dmd_rate -timebase 5min
		$CHASSISCMD esmcmd dbg1 solo dmd_rate -timebase all
		$CHASSISCMD esmcmd dbg1 solo dmd_rate -timebase gran
		$CHASSISCMD esmcmd dbg1 solo -pin flow_show
		$CHASSISCMD esmcmd dbg1 solo stats
		$CHASSISCMD esmcmd dbg1 solo stats -timebase rt
		$CHASSISCMD esmcmd dbg1 solo stats -timebase 1sec
		$CHASSISCMD esmcmd dbg1 solo stats -timebase 1min
		$CHASSISCMD esmcmd dbg1 solo stats -timebase 5min
		$CHASSISCMD esmcmd dbg1 solo stats -timebase gran
		$CHASSISCMD esmcmd dbg1 solo scsicmd
		$CHASSISCMD esmcmd dbg1 solo scsicmd -timebase rt
		$CHASSISCMD esmcmd dbg1 solo scsicmd -timebase gran
		$CHASSISCMD esmcmd dbg1 solo fabltncy
		$CHASSISCMD esmcmd dbg1 solo fabltncy -timebase rt
		$CHASSISCMD esmcmd dbg1 solo fabltncy -timebase gran
		$CHASSISCMD esmcmd dbg1 solo fabltncy ooo
		$CHASSISCMD esmcmd dbg1 solo fabltncy ooo -timebase rt
		$CHASSISCMD esmcmd dbg1 solo fabltncy ooo -timebase gran
		$CHASSISCMD esmcmd dbg1 solo scsicmd ooo -timebase all
		$CHASSISCMD esmcmd dbg1 solo scsicmd ooo -timebase gran
		$CHASSISCMD esmcmd dbg1 solo ooo
		$CHASSISCMD esmcmd dbg1 solo ofl-rgl
		$CHASSISCMD esmcmd dbg1 solo re-grp-info
		$CHASSISCMD esmcmd dbg1 solo re-rule-info -all
		$CHASSISCMD esmcmd dbg1 solo mp -resource
		$CHASSISCMD esmcmd dbg1 solo mp -lu_wwn_hash_table
		$CHASSISCMD esmcmd dbg1 solo mp -global
		$CHASSISCMD esmcmd dbg1 solo it_info 
		$CHASSISCMD esmcmd dbg1 solo mp -flow_debug
		$CHASSISCMD esmcmd dbg1 solo mp -sid "*" -did "*" -lun "*" -info
		$CHASSISCMD esmcmd dbg1 solo timer_stat
		$CHASSISCMD esmcmd dbg1 solo str_dbg_get
        $CHASSISCMD esmcmd dbg1 solo trace info
        $CHASSISCMD esmcmd dbg1 solo iov_summary
	fi

	$CHASSISCMD /bin/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" = "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
  # Capture the error counters one more time as this is needed per RFE.
	$CHASSISCMD sloterrshow -c2 -r


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

  export DB_SILENT_ERR=1
  cd /proc/fabos/blade
  c4pregdmpcnt=0
  ge4regdmpcnt=0
  c4regdmpcnt=0
  c3regdmpcnt=0
  c2regdmpcnt=0
  c1regdmpcnt=0
  pbregdmpcnt=0
  pbregdumpindex=0
  blsregdmpcnt=0
  blsregdumpindex=0
  num_anvils=0
  for i in `ls -d [0-9]* | sort -n` ; do
	#
	# no shell cmd should intervene between asic_db_blade_type and 
	# check for return status stored in $?.
	# Note: "db" work on proc path slot#/mini#/chip#
	# This script assumes the following for ALL blade type.
	# The script has to be modified if the assumption becomes false.
    # 1) The following chip 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
		if [ "$blade_type" = "skybolt" ]; then
			$ECHO "Dumping IOCTL usage"
			$ECHO ""
			$ECHO "-------------------"
			$ECHO ""
			$CHASSISCMD db "$i"/0 dbg show ioctl usage
		fi
		
		# Condor 4 Plus
		count=0
		while [ $count -lt $num_c4ps ] 
		do 
			$ECHO " "
			$ECHO  +++++++++++++++++ Asic Chip "$i"/$count/0 RTE database ++++++++++++++++++++++++
			$CHASSISCMD /fabos/link_rbin/asicswdump -s $i -m $count 
			$CHASSISCMD /fabos/link_rbin/asicswdump -s $i -m $count -g 5
			$CHASSISCMD /fabos/link_rbin/asicswdump -s $i -m $count -g 7
			$CHASSISCMD /fabos/link_rbin/asicswdump -s $i -m $count -g 9
            $ECHO " "
            $ECHO  +++++++++++++++++ Asic Chip "$i"/$count/0 Regdump ++++++++++++++++++++++++
            $CHASSISCMD /fabos/link_rbin/c4pregdump "$i"/$count/0 
			if [ -e /var/regdump.dmp ]
			then
				$CHASSISCMD mv /var/regdump.dmp /var/c4pregdump.dmp."$i".$count
				$CHASSISCMD gzip -f /var/c4pregdump.dmp."$i".$count
				(( c4pregdmpcnt += 1 ))
			fi
			(( count += 1 ))
		done

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

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

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

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

		count=0
		while [ $count -lt $num_condors ] 
		do 
			$ECHO " "
			$ECHO  +++++++++++++++++ Asic Chip "$i"/$count/0 RTE database ++++++++++++++++++++++++
			$CHASSISCMD /fabos/link_rbin/asicswdump -s $i -m $count 
            $ECHO " "
            $ECHO  +++++++++++++++++ Asic Chip "$i"/$count/0 Regdump ++++++++++++++++++++++++
	    (( count += 1 ))
	    	
	done
		#Striker/Spike Blaster chip.
		 count=0
                 while [ $count -lt $num_blaster ]
	         do 
	   $ECHO  +++++++++++++++++ Asic Chip "$i"/$count/1 Regdump ++++++++++++++++++++++++
	   let blsregdumpindex=$count+1
	   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_rbin/asicswdump -s $i -m $count -c 1 -g 1
			$ECHO  +++++++++++++++++ Asic Chip "$i"/$count/0 STATS dump ++++++++++++++++++++++++
			$CHASSISCMD /fabos/link_rbin/asicswdump -s $i -m $count -g 3
            $ECHO " "
            $ECHO  +++++++++++++++++ Asic Chip "$i"/$count/1 Regdump ++++++++++++++++++++++++
	    let pbregdumpindex=$count+2
 	    (( count += 1 ))
		done
		count=0
		anvil=4 # anvi starts at 4 for elara/europa
		while [ $count -lt $num_anvils ] 
		do 
			$ECHO " "
			$ECHO  +++++++++++++++++ Anvil Chip "$i"/$anvil/0 ++++++++++++++++++++++++

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

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

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

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

	    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 [ "$SSAVE" = "TRUE" ]; then

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

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

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

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

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

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

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

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

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

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

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

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

    /bin/rm /var/c1regdump*gz
    /bin/rm /var/c1hregdecode
    /bin/rm /var/c1hregcmp
	sync
	else
    $ECHO "No condor chips on this switch" > /var/c1emptyregdump.txt
    tar -cvf /tmp/C1REGDUMP.tar /var/c1emptyregdump.txt 2> /dev/null
    /bin/rm /var/c1emptyregdump.txt
	sync
  fi
  if [ $pbregdmpcnt -gt 0 ]
  then
    #
    # Move all pb reg dumps into a tar ball
    #
    /bin/cp /fabos/cliexec/pbhregdecode /var/
    /bin/cp /fabos/cliexec/pbhregcmp /var/

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

    /bin/rm /var/pbregdump*gz
    /bin/rm /var/pbhregdecode
    /bin/rm /var/pbhregcmp
	sync
	else
    /bin/echo "No pinball chips on this switch" > /var/pbemptyregdump.txt
    tar -cvf /tmp/PBREGDUMP.tar /var/pbemptyregdump.txt 2> /dev/null
    /bin/rm /var/pbemptyregdump.txt
	sync
  fi
  if [ $blsregdmpcnt -gt 0 ]
  then
    #
    # Move all bls reg dumps into a tar ball
    #
    /bin/cp /fabos/cliexec/blshregdecode /var/
    

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

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

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

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

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

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

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

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

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

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

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

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

  
  }

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

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

	fi
}

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

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

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

  fi
}


start_dce_hsl_cmd() {

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

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

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


# Capture debug information of flow cmd

start_flow_cmd() {

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

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

  if [ $os_on = enabled ]
  then    
    group_show start_os_cmd
  fi

  if [ $exception_on = enabled ]
  then
    group_show start_exception_cmd
  fi

  if [ $fabric_on = enabled ]
  then
    group_show start_fc_fabric_cmd
  fi

  if [ $fcoe_on = enabled ]
  then
    group_show start_fcoe_cmd
  fi

  if [ $ucid_on = enabled ]
  then
    group_show start_ucid_cmd
  fi

  if [ $services_on = enabled ]
  then
    group_show start_fc_service_cmd
  fi

  if [ $security_on = enabled ]
  then
    group_show start_security_cmd
  fi

  if [ $network_on = enabled ]
  then
    group_show start_network_cmd
  fi

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

  if [ $ficon_on = enabled ]
  then
    group_show start_ficon_cmd
  fi

  if [ $iswitch_on = enabled ]
  then
    group_show start_iswitch_cmd
  fi

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

  if [ $ag_on = enabled ]
  then
    group_show start_ag_cmd
  fi

  if [ $dce_hsl_on = enabled ]
  then
    group_show start_dce_hsl_cmd
  fi

  if [ $crypto_on = enabled ]
  then
    group_show start_crypto_cmd
  fi

  if [ $fcip_on = enabled ]
  then
    group_show start_fcip_cmd
  fi

  if [ $amp_on = enabled ]
  then
    group_show start_amp_cmd 
  fi

  if [ $flow_on = enabled ]
  then
   group_show start_flow_cmd
  fi

}

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

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

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

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

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

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

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


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

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

  #
  # Preprocessing command arguments 
  #

  slot=${FABOS_SLOTNO:-$def_slot}

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

  os_on=disabled;
  exception_on=disabled;
  port_on=disabled;
  fabric_on=disabled;
  fcoe_on=disabled;
  ucid_on=disabled;
  services_on=disabled;
  security_on=disabled;
  network_on=disabled;
  portlog_on=disabled;
  system_on=disabled;
  extend_on=disabled;
  filter_on=disabled;
  iscsi_on=disabled;
  ficon_on=disabled;
  iswitch_on=disabled;
  asic_db_on=disabled;
  fcip_on=disabled;
  amp_on=disabled;
  ampdp0_on=disabled;
  ampdp1_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 2>/dev/null
	exit 3
      fi
    fi

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

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

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


    #
    #
    # nlog_set will be set in
    # Pizza box: when the first INDIVIDUAL number is matched;
    #
    # multi blade: when the first number is matched as SLOT_NUMBER
    #          and the second is matched as nlog number.
    #
    #
    if [ "$param"  != "" ]
    then
    group=$param
    case "$param" in
      "os" ) os_on=enabled;runtime_variable=enabled;continue;;
      "exception" ) exception_on=enabled;runtime_variable=enabled;continue;;
      "port" ) port_on=enabled;runtime_variable=enabled;continue;;
      "fabric" ) fabric_on=enabled;runtime_variable=enabled;continue;;
      "fcoe" ) fcoe_on=enabled;runtime_variable=enabled;continue;;
      "ucid" ) ucid_on=enabled;runtime_variable=enabled;continue;;
      "service" ) services_on=enabled;runtime_variable=enabled;continue;;
      "security" ) security_on=enabled;runtime_variable=enabled;continue;;
      "network" ) network_on=enabled;runtime_variable=enabled;continue;;
      "portlog" ) portlog_on=enabled;runtime_variable=enabled;continue;;
      "system" ) system_on=enabled;runtime_variable=enabled;continue;;
      "extend" ) extend_on=enabled;runtime_variable=enabled;continue;;
	  "iscsi" ) iscsi_on=enabled;runtime_variable=enabled;continue;;
      "filter" ) filter_on=enabled;runtime_variable=enabled;continue;;
      "ficon" ) ficon_on=enabled;runtime_variable=enabled;continue;;
      "iswitch" ) iswitch_on=enabled;runtime_variable=enabled;continue;;
      "asic_db" ) asic_db_on=enabled;runtime_variable=enabled;continue;;
      "fcip" )    fcip_on=enabled;runtime_variable=enabled;continue;;
      "amp" )    amp_on=enabled;runtime_variable=enabled;continue;;
	  "ampdp0" ) amp_on=enabled;ampdp0_on=enabled;runtime_variable=enabled;continue;;
	  "ampdp1" ) amp_on=enabled;ampdp1_on=enabled;runtime_variable=enabled;continue;;
      "ag" )    ag_on=enabled;runtime_variable=enabled;continue;;
      "crypto" ) crypto_on=enabled;runtime_variable=enabled;continue;;
      "dce_hsl" )  dce_hsl_on=enabled;runtime_variable=enabled;continue;;
      "flow" ) flow_on=enabled;runtime_variable=enabled;continue;;
      "all" )os_on=enabled;
	    exception_on=enabled;
	    port_on=enabled;
	    fabric_on=enabled;
	    fcoe_on=enabled;
	    ucid_on=enabled;
	    services_on=enabled;
	    security_on=enabled;
	    network_on=enabled;
	    portlog_on=enabled;
	    system_on=enabled;
	    extend_on=enabled;
	    filter_on=enabled;
	    iscsi_on=enabled;
	    ficon_on=enabled;
	    iswitch_on=enabled;
	    asic_db_on=enabled;
	    fcip_on=enabled;
		amp_on=enabled;
		ampdp0_on=enabled;
		ampdp1_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 2>/dev/null
    exit 4

  done

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

  # slot is mandatory for Ulysess
  # but we have to support none-parameter for supportshow
  # in Ulysess
  if [ $slot -eq $def_slot ] && [ "$multiBlade" = "TRUE" ] 
  then
    start_show
    if [ $tempport_set = 1 ]
    then
        start_port_show $begport $endport
    elif [ $permport_set == 1 ]
	then
		start_port_show $slot $begport $endport
	else
        start_port_show
    fi
    end_tail
    /bin/rm -rf /fabos/link_sbin/lscfg_test 2>/dev/null
    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 2>/dev/null
    exit 4
  fi

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

  #
  #
  # check on port range validity
  #
  #

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

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

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

  end_tail
}

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

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

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

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

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

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

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

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

  $ECHO " ag         $ag_on"
  $ECHO " dce_hsl    $dce_hsl_on"
  if [ $sw_platform == 62 ] || [ $sw_platform == 67 ] || [ $sw_platform == 77 ]
  then
    $ECHO " crypto     $crypto_on"
  fi

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


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

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

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

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

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

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

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

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

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

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

def_slot=0
cfg_name="diag.script.supportshow.config"
cfgdefault="os:1@ex:1@pt:1@fa:1@fc:1@uc:1@sr:1@sc:1@nt:1@pl:1@sy:1@et:0@fl:0@fi:0@is:1@db:1@ip:1@iscsi:1@ag:1@crypto:0@hsl:1"
runtime_variable=disabled;
#sw_platform=`/sbin/sin 2>/dev/null | /bin/grep SWBD | /usr/bin/cut -d ' ' -f 2 | /usr/bin/cut -c 5-6`
sw_platform=$( /sbin/sin 2>/dev/null | /bin/sed -n 's/^.*SWBD\([^,]*\),.*/\1/p' )
#
#
# Load library -- must be first.
#
#
home="/fabos/share"
util="diagcommon.sh"
ok=0
#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 2>/dev/null
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/link_rbin:/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
