#!/pkg/bin/ksh
# ---------------------------------------------------------------------
# show_tech_fabric - Runs show commands for show tech-support fabric
#
# Copyright (c) 2014, 2016-2019 by cisco Systems, Inc.
# All rights reserved.
#--------------------------------------------------------------------
. /pkg/bin/show_tech_main_fragment

system_exec[1]='admin show platform'
system__ksh[1]='show_platform_sysdb'
system_exec[2]='show redundancy'
system__ksh[2]='redcon_show'
system_exec[3]='show logging'
system__ksh[3]='show_logging'
system__ksh[4]=''

rsp_exec[1]='show controllers fabricmgr trace cxbar'
rsp__ksh[1]='fmshell show trace cxbar'
rsp_exec[2]='show controllers fabricmgr trace init' 
rsp__ksh[2]='fmshell show trace init'
rsp_exec[3]='show controllers fabricmgr trace error' 
rsp__ksh[3]='fmshell show trace error'
rsp_exec[4]='show controllers fabricmgr trace carb' 
rsp__ksh[4]='fmshell show trace carb'
rsp_exec[5]='show controllers fabricmgr trace int_lxbar' 
rsp__ksh[5]='fmshell show trace int_lxbar'
rsp_exec[6]='show controllers fabricmgr trace int_larb' 
rsp__ksh[6]='fmshell show trace int_larb'
rsp_exec[7]='show controllers fabricmgr trace ext_cxbar' 
rsp__ksh[7]='fmshell show trace ext_cxbar'
rsp_exec[8]='show controllers fabricmgr trace ext_carb' 
rsp__ksh[8]='fmshell show trace ext_carb'
rsp_exec[9]='show controllers fabricmgr trace node_glob' 
rsp__ksh[9]='fmshell show trace node_glob'
rsp_exec[10]='show controllers fabricmgr status node all' 
rsp__ksh[10]='fmshell show state node all'
rsp_exec[11]='show controllers fabricmgr status spine'
rsp__ksh[11]='fmshell show state spine'
rsp_exec[12]='xbar init trace'
rsp__ksh[12]='show_sm15_ltrace -s 0 fab_xbar'
rsp_exec[13]='xbar error trace'
rsp__ksh[13]='show_sm15_ltrace -s 2 fab_xbar'
rsp_exec[14]='xbar-port init trace'
rsp__ksh[14]='show_fencer_ltrace -s 0 fab_xbar'
rsp_exec[15]='xbar-port error trace'
rsp__ksh[15]='show_fencer_ltrace -s 2 fab_xbar'
rsp_exec[16]='fia-port init trace'
rsp__ksh[16]='show_fencer_ltrace -s 0 fia'
rsp_exec[17]='fia-port error trace'
rsp__ksh[17]='show_fencer_ltrace -s 2 fia'
rsp_exec[18]='xbar-serdes init trace'
rsp__ksh[18]='show_avago28nm_ltrace -s 0 fab_xbar'
rsp_exec[19]='xbar-serdes error trace'
rsp__ksh[19]='show_avago28nm_ltrace -s 2 fab_xbar'
rsp_exec[20]='fia-serdes init trace'
rsp__ksh[20]='show_avago28nm_ltrace -s 0 fia'
rsp_exec[21]='fia-serdes error trace'
rsp__ksh[21]='show_avago28nm_ltrace -s 2 fia'
rsp_exec[22]='sh contr fabric vqi trace location all'
rsp__ksh[22]='fab_vqi_show_trace -XYZAB'
rsp_exec[23]='sh controller fabric health spine all'
rsp__ksh[23]='show_fab_health -h -a'
rsp_exec[24]='show controllers fabricmgr trace log_cxbar'
rsp__ksh[24]='fmshell show trace log_cxbar'
rsp_exec[25]='show controllers fabricmgr trace log_carb'
rsp__ksh[25]='fmshell show trace log_carb'
rsp_exec[26]='show controllers fabric ltrace crossbar'
rsp__ksh[26]='show_fabxbar_ltrace -I .*'
rsp_exec[27]='show controllers fabric crossbar statistics instance 0 location $location'
rsp__ksh[27]='xbar_show stats -i 0 -s $fq_nodeid port'
rsp_exec[28]='show controllers fabric crossbar statistics instance 1 location $location'
rsp__ksh[28]='xbar_show stats -i 1 -s $fq_nodeid port'
rsp_exec[29]='show controllers fabric crossbar link-status instance 0 location $location'
rsp__ksh[29]='xbar_show link-status -i 0 -s $fq_nodeid'
rsp_exec[30]='show controllers fabric crossbar link-status instance 1 location $location'
rsp__ksh[30]='xbar_show link-status -i 1 -s $fq_nodeid'
rsp_exec[31]='skybolt xbar init trace'
rsp__ksh[31]='show_skb_ltrace -s 0 fab_xbar'
rsp_exec[32]='skybolt xbar error trace'
rsp__ksh[32]='show_skb_ltrace -s 2 fab_xbar'
rsp_exec[33]='skb xbar-port init trace'
rsp__ksh[33]='show_fencer2_ltrace -s 0 fab_xbar'
rsp_exec[34]='skb xbar-port error trace'
rsp__ksh[34]='show_fencer2_ltrace -s 2 fab_xbar'
rsp_exec[35]='skb xbar-serdes init trace'
rsp__ksh[35]='show_avago16nm_ltrace -s 0 fab_xbar'
rsp_exec[36]='skb xbar-serdes error trace'
rsp__ksh[36]='show_avago16nm_ltrace -s 2 fab_xbar'
rsp_exec[37]='sh controllers fabric crossbar mac-stats instance 0 location $location'
rsp__ksh[37]='xbar_show stats -i 0 -s $fq_nodeid mac'
rsp_exec[38]='sh controllers fabric crossbar mac-stats instance 1 location $location'
rsp__ksh[38]='xbar_show stats -i 1 -s $fq_nodeid mac'
rsp__ksh[39]=''

rp_exec[1]='sh contr fabric plane all'
rp__ksh[1]='xbar_fab_plane_show -f all'
rp_exec[2]='sh contr fabric crossbar link-status inst 0 spine 0'
rp__ksh[2]='xbar_show link-status -i 0 -f 0'
rp_exec[3]='sh contr fabric crossbar link-status inst 0 spine 1'
rp__ksh[3]='xbar_show link-status -i 0 -f 1'
rp_exec[4]='sh contr fabric crossbar link-status inst 0 spine 2'
rp__ksh[4]='xbar_show link-status -i 0 -f 2'
rp_exec[5]='sh contr fabric crossbar link-status inst 0 spine 3'
rp__ksh[5]='xbar_show link-status -i 0 -f 3'
rp_exec[6]='sh contr fabric crossbar link-status inst 0 spine 4'
rp__ksh[6]='xbar_show link-status -i 0 -f 4'
rp_exec[7]='sh contr fabric crossbar link-status inst 0 spine 5'
rp__ksh[7]='xbar_show link-status -i 0 -f 5'
rp_exec[8]='sh contr fabric crossbar link-status inst 0 spine 6'
rp__ksh[8]='xbar_show link-status -i 0 -f 6'
rp_exec[9]='sh contr fabric crossbar chico3 ltrace spine 0'
rp__ksh[9]='show_chico3_ltrace fab_xbar_sp22'
rp_exec[10]='sh contr fabric crossbar chico3 ltrace spine 1'
rp__ksh[10]='show_chico3_ltrace fab_xbar_sp23'
rp_exec[11]='sh contr fabric crossbar chico3 ltrace spine 2'
rp__ksh[11]='show_chico3_ltrace fab_xbar_sp24'
rp_exec[12]='sh contr fabric crossbar chico3 ltrace spine 3'
rp__ksh[12]='show_chico3_ltrace fab_xbar_sp25'
rp_exec[13]='sh contr fabric crossbar chico3 ltrace spine 4'
rp__ksh[13]='show_chico3_ltrace fab_xbar_sp26'
rp_exec[14]='sh contr fabric crossbar chico3 ltrace spine 5'
rp__ksh[14]='show_chico3_ltrace fab_xbar_sp27'
rp_exec[15]='sh contr fabric crossbar chico3 ltrace spine 6'
rp__ksh[15]='show_chico3_ltrace fab_xbar_sp28'
rp_exec[16]='xbar init trace'
rp__ksh[16]='show_sm15_ltrace -s 0 fab_xbar'
rp_exec[17]='xbar error trace'
rp__ksh[17]='show_sm15_ltrace -s 2 fab_xbar'
rp_exec[18]='FC0 xbar init trace'
rp__ksh[18]='show_sm15_ltrace -s 0 fab_xbar_sp0'
rp_exec[19]='FC0 xbar error trace'
rp__ksh[19]='show_sm15_ltrace -s 2 fab_xbar_sp0'
rp_exec[20]='FC1 xbar init trace'
rp__ksh[20]='show_sm15_ltrace -s 0 fab_xbar_sp1'
rp_exec[21]='FC1 xbar error trace'
rp__ksh[21]='show_sm15_ltrace -s 2 fab_xbar_sp1'
rp_exec[22]='FC2 xbar init trace'
rp__ksh[22]='show_sm15_ltrace -s 0 fab_xbar_sp2'
rp_exec[23]='FC2 xbar error trace'
rp__ksh[23]='show_sm15_ltrace -s 2 fab_xbar_sp2'
rp_exec[24]='FC3 xbar init trace'
rp__ksh[24]='show_sm15_ltrace -s 0 fab_xbar_sp3'
rp_exec[25]='FC3 xbar error trace'
rp__ksh[25]='show_sm15_ltrace -s 2 fab_xbar_sp3'
rp_exec[26]='FC4 xbar init trace'
rp__ksh[26]='show_sm15_ltrace -s 0 fab_xbar_sp4'
rp_exec[27]='FC4 xbar error trace'
rp__ksh[27]='show_sm15_ltrace -s 2 fab_xbar_sp4'
rp_exec[28]='FC5 xbar init trace'
rp__ksh[28]='show_sm15_ltrace -s 0 fab_xbar_sp5'
rp_exec[29]='FC5 xbar error trace'
rp__ksh[29]='show_sm15_ltrace -s 2 fab_xbar_sp5'
rp_exec[30]='FC6 xbar init trace'
rp__ksh[30]='show_sm15_ltrace -s 0 fab_xbar_sp6'
rp_exec[31]='FC6 xbar error trace'
rp__ksh[31]='show_sm15_ltrace -s 2 fab_xbar_sp6'
rp_exec[32]='xbar-port init trace'
rp__ksh[32]='show_fencer_ltrace -s 0 fab_xbar'
rp_exec[33]='xbar-port error trace'
rp__ksh[33]='show_fencer_ltrace -s 2 fab_xbar'
rp_exec[34]='fia-port init trace'
rp__ksh[34]='show_fencer_ltrace -s 0 fia'
rp_exec[35]='fia-port error trace'
rp__ksh[35]='show_fencer_ltrace -s 2 fia'
rp_exec[36]='FC0 xbar-port init trace'
rp__ksh[36]='show_fencer_ltrace -s 0 fab_xbar_sp0'
rp_exec[37]='FC0 xbar-port error trace'
rp__ksh[37]='show_fencer_ltrace -s 2 fab_xbar_sp0'
rp_exec[38]='FC1 xbar-port init trace'
rp__ksh[38]='show_fencer_ltrace -s 0 fab_xbar_sp1'
rp_exec[39]='FC1 xbar-port error trace'
rp__ksh[39]='show_fencer_ltrace -s 2 fab_xbar_sp1'
rp_exec[40]='FC2 xbar-port init trace'
rp__ksh[40]='show_fencer_ltrace -s 0 fab_xbar_sp2'
rp_exec[41]='FC2 xbar-port error trace'
rp__ksh[41]='show_fencer_ltrace -s 2 fab_xbar_sp2'
rp_exec[42]='FC3 xbar-port init trace'
rp__ksh[42]='show_fencer_ltrace -s 0 fab_xbar_sp3'
rp_exec[43]='FC3 xbar-port error trace'
rp__ksh[43]='show_fencer_ltrace -s 2 fab_xbar_sp3'
rp_exec[44]='FC4 xbar-port init trace'
rp__ksh[44]='show_fencer_ltrace -s 0 fab_xbar_sp4'
rp_exec[45]='FC4 xbar-port error trace'
rp__ksh[45]='show_fencer_ltrace -s 2 fab_xbar_sp4'
rp_exec[46]='FC5 xbar-port init trace'
rp__ksh[46]='show_fencer_ltrace -s 0 fab_xbar_sp5'
rp_exec[47]='FC5 xbar-port error trace'
rp__ksh[47]='show_fencer_ltrace -s 2 fab_xbar_sp5'
rp_exec[48]='FC6 xbar-port init trace'
rp__ksh[48]='show_fencer_ltrace -s 0 fab_xbar_sp6'
rp_exec[49]='FC6 xbar-port error trace'
rp__ksh[49]='show_fencer_ltrace -s 2 fab_xbar_sp6'
rp_exec[50]='xbar-serdes init trace'
rp__ksh[50]='show_avago28nm_ltrace -s 0 fab_xbar'
rp_exec[51]='xbar-serdes error trace'
rp__ksh[51]='show_avago28nm_ltrace -s 2 fab_xbar'
rp_exec[52]='fia-serdes init trace'
rp__ksh[52]='show_avago28nm_ltrace -s 0 fia'
rp_exec[53]='fia-serdes error trace'
rp__ksh[53]='show_avago28nm_ltrace -s 2 fia'
rp_exec[54]='FC0 xbar-serdes init trace'
rp__ksh[54]='show_avago28nm_ltrace -s 0 fab_xbar_sp0'
rp_exec[55]='FC0 xbar-serdes error trace'
rp__ksh[55]='show_avago28nm_ltrace -s 2 fab_xbar_sp0'
rp_exec[56]='FC1 xbar-serdes init trace'
rp__ksh[56]='show_avago28nm_ltrace -s 0 fab_xbar_sp1'
rp_exec[57]='FC1 xbar-serdes error trace'
rp__ksh[57]='show_avago28nm_ltrace -s 2 fab_xbar_sp1'
rp_exec[58]='FC2 xbar-serdes init trace'
rp__ksh[58]='show_avago28nm_ltrace -s 0 fab_xbar_sp2'
rp_exec[59]='FC2 xbar-serdes error trace'
rp__ksh[59]='show_avago28nm_ltrace -s 2 fab_xbar_sp2'
rp_exec[60]='FC3 xbar-serdes init trace'
rp__ksh[60]='show_avago28nm_ltrace -s 0 fab_xbar_sp3'
rp_exec[61]='FC3 xbar-serdes error trace'
rp__ksh[61]='show_avago28nm_ltrace -s 2 fab_xbar_sp3'
rp_exec[62]='FC4 xbar-serdes init trace'
rp__ksh[62]='show_avago28nm_ltrace -s 0 fab_xbar_sp4'
rp_exec[63]='FC4 xbar-serdes error trace'
rp__ksh[63]='show_avago28nm_ltrace -s 2 fab_xbar_sp4'
rp_exec[64]='FC5 xbar-serdes init trace'
rp__ksh[64]='show_avago28nm_ltrace -s 0 fab_xbar_sp5'
rp_exec[65]='FC5 xbar-serdes error trace'
rp__ksh[65]='show_avago28nm_ltrace -s 2 fab_xbar_sp5'
rp_exec[66]='FC6 xbar-serdes init trace'
rp__ksh[66]='show_avago28nm_ltrace -s 0 fab_xbar_sp6'
rp_exec[67]='FC6 xbar-serdes error trace'
rp__ksh[67]='show_avago28nm_ltrace -s 2 fab_xbar_sp6'
rp_exec[68]='show contr fabric ltrace spine-crossbar spine 0'
rp__ksh[68]='show_fabxbar_ltrace -s 0 -I .*'
rp_exec[69]='show contr fabric ltrace spine-crossbar spine 1'
rp__ksh[69]='show_fabxbar_ltrace -s 1 -I .*'
rp_exec[70]='show contr fabric ltrace spine-crossbar spine 2'
rp__ksh[70]='show_fabxbar_ltrace -s 2 -I .*'
rp_exec[71]='show contr fabric ltrace spine-crossbar spine 3'
rp__ksh[71]='show_fabxbar_ltrace -s 3 -I .*'
rp_exec[72]='show contr fabric ltrace spine-crossbar spine 4'
rp__ksh[72]='show_fabxbar_ltrace -s 4 -I .*'
rp_exec[73]='show contr fabric ltrace spine-crossbar spine 5'
rp__ksh[73]='show_fabxbar_ltrace -s 5 -I .*'
rp_exec[74]='show contr fabric ltrace spine-crossbar spine 6'
rp__ksh[74]='show_fabxbar_ltrace -s 6 -I .*'
rp_exec[75]='show controllers fabric crossbar link-status instance 1 spine 0'
rp__ksh[75]='xbar_show link-status -i 1 -f 0'
rp_exec[76]='show controllers fabric crossbar link-status instance 1 spine 1'
rp__ksh[76]='xbar_show link-status -i 1 -f 1'
rp_exec[77]='show controllers fabric crossbar link-status instance 1 spine 2'
rp__ksh[77]='xbar_show link-status -i 1 -f 2'
rp_exec[78]='show controllers fabric crossbar link-status instance 1 spine 3'
rp__ksh[78]='xbar_show link-status -i 1 -f 3'
rp_exec[79]='show controllers fabric crossbar link-status instance 1 spine 4'
rp__ksh[79]='xbar_show link-status -i 1 -f 4'
rp_exec[80]='show controllers fabric crossbar link-status instance 1 spine 5'
rp__ksh[80]='xbar_show link-status -i 1 -f 5'
rp_exec[81]='show controllers fabric crossbar link-status instance 1 spine 6'
rp__ksh[81]='xbar_show link-status -i 1 -f 6'
rp_exec[82]='show controllers fabric crossbar statistics instance 0 spine 0'
rp__ksh[82]='xbar_show stats -i 0 -f 0 port'
rp_exec[83]='show controllers fabric crossbar statistics instance 0 spine 1'
rp__ksh[83]='xbar_show stats -i 0 -f 1 port'
rp_exec[84]='show controllers fabric crossbar statistics instance 0 spine 2'
rp__ksh[84]='xbar_show stats -i 0 -f 2 port'
rp_exec[85]='show controllers fabric crossbar statistics instance 0 spine 3'
rp__ksh[85]='xbar_show stats -i 0 -f 3 port'
rp_exec[86]='show controllers fabric crossbar statistics instance 0 spine 4'
rp__ksh[86]='xbar_show stats -i 0 -f 4 port'
rp_exec[87]='show controllers fabric crossbar statistics instance 0 spine 5'
rp__ksh[87]='xbar_show stats -i 0 -f 5 port'
rp_exec[88]='show controllers fabric crossbar statistics instance 0 spine 6'
rp__ksh[88]='xbar_show stats -i 0 -f 6 port'
rp_exec[89]='show controllers fabric crossbar statistics instance 1 spine 0'
rp__ksh[89]='xbar_show stats -i 1 -f 0 port'
rp_exec[90]='show controllers fabric crossbar statistics instance 1 spine 1'
rp__ksh[90]='xbar_show stats -i 1 -f 1 port'
rp_exec[91]='show controllers fabric crossbar statistics instance 1 spine 2'
rp__ksh[91]='xbar_show stats -i 1 -f 2 port'
rp_exec[92]='show controllers fabric crossbar statistics instance 1 spine 3'
rp__ksh[92]='xbar_show stats -i 1 -f 3 port'
rp_exec[93]='show controllers fabric crossbar statistics instance 1 spine 4'
rp__ksh[93]='xbar_show stats -i 1 -f 4 port'
rp_exec[94]='show controllers fabric crossbar statistics instance 1 spine 5'
rp__ksh[94]='xbar_show stats -i 1 -f 5 port'
rp_exec[95]='show controllers fabric crossbar statistics instance 1 spine 6'
rp__ksh[95]='xbar_show stats -i 1 -f 6 port'
rp_exec[96]='sh controllers fabric ltrace crossbar'
rp__ksh[96]='show_fabxbar_ltrace -I .*'
rp_exec[97]='FC0 skybolt xbar init trace'
rp__ksh[97]='show_skb_ltrace -s 0 fab_xbar_sp0'
rp_exec[98]='FC0 skybolt xbar error trace'
rp__ksh[98]='show_skb_ltrace -s 2 fab_xbar_sp0'
rp_exec[99]='FC1 skybolt xbar init trace'
rp__ksh[99]='show_skb_ltrace -s 0 fab_xbar_sp1'
rp_exec[100]='FC1 skybolt xbar error trace'
rp__ksh[100]='show_skb_ltrace -s 2 fab_xbar_sp1'
rp_exec[101]='FC2 skybolt xbar init trace'
rp__ksh[101]='show_skb_ltrace -s 0 fab_xbar_sp2'
rp_exec[102]='FC2 skybolt xbar error trace'
rp__ksh[102]='show_skb_ltrace -s 2 fab_xbar_sp2'
rp_exec[103]='FC3 skybolt xbar init trace'
rp__ksh[103]='show_skb_ltrace -s 0 fab_xbar_sp3'
rp_exec[104]='FC3 skybolt xbar error trace'
rp__ksh[104]='show_skb_ltrace -s 2 fab_xbar_sp3'
rp_exec[105]='FC4 skybolt xbar init trace'
rp__ksh[105]='show_skb_ltrace -s 0 fab_xbar_sp4'
rp_exec[106]='FC4 skybolt xbar error trace'
rp__ksh[106]='show_skb_ltrace -s 2 fab_xbar_sp4'
rp_exec[107]='FC5 skybolt xbar init trace'
rp__ksh[107]='show_skb_ltrace -s 0 fab_xbar_sp5'
rp_exec[108]='FC5 skybolt xbar error trace'
rp__ksh[108]='show_skb_ltrace -s 2 fab_xbar_sp5'
rp_exec[109]='FC6 skybolt xbar init trace'
rp__ksh[109]='show_skb_ltrace -s 0 fab_xbar_sp6'
rp_exec[110]='FC6 skybolt xbar error trace'
rp__ksh[110]='show_skb_ltrace -s 2 fab_xbar_sp6'
rp_exec[111]='FC0 skb xbar-port init trace'
rp__ksh[111]='show_fencer2_ltrace -s 0 fab_xbar_sp0'
rp_exec[112]='FC0 skb xbar-port error trace'
rp__ksh[112]='show_fencer2_ltrace -s 2 fab_xbar_sp0'
rp_exec[113]='FC1 skb xbar-port init trace'
rp__ksh[113]='show_fencer2_ltrace -s 0 fab_xbar_sp1'
rp_exec[114]='FC1 skb xbar-port error trace'
rp__ksh[114]='show_fencer2_ltrace -s 2 fab_xbar_sp1'
rp_exec[115]='FC2 skb xbar-port init trace'
rp__ksh[115]='show_fencer2_ltrace -s 0 fab_xbar_sp2'
rp_exec[116]='FC2 skb xbar-port error trace'
rp__ksh[116]='show_fencer2_ltrace -s 2 fab_xbar_sp2'
rp_exec[117]='FC3 skb xbar-port init trace'
rp__ksh[117]='show_fencer2_ltrace -s 0 fab_xbar_sp3'
rp_exec[118]='FC3 skb xbar-port error trace'
rp__ksh[118]='show_fencer2_ltrace -s 2 fab_xbar_sp3'
rp_exec[119]='FC4 skb xbar-port init trace'
rp__ksh[119]='show_fencer2_ltrace -s 0 fab_xbar_sp4'
rp_exec[120]='FC4 skb xbar-port error trace'
rp__ksh[120]='show_fencer2_ltrace -s 2 fab_xbar_sp4'
rp_exec[121]='FC5 skb xbar-port init trace'
rp__ksh[121]='show_fencer2_ltrace -s 0 fab_xbar_sp5'
rp_exec[122]='FC5 skb xbar-port error trace'
rp__ksh[122]='show_fencer2_ltrace -s 2 fab_xbar_sp5'
rp_exec[123]='FC6 skb xbar-port init trace'
rp__ksh[123]='show_fencer2_ltrace -s 0 fab_xbar_sp6'
rp_exec[124]='FC6 skb xbar-port error trace'
rp__ksh[124]='show_fencer2_ltrace -s 2 fab_xbar_sp6'
rp_exec[125]='FC0 skb xbar-serdes init trace'
rp__ksh[125]='show_avago16nm_ltrace -s 0 fab_xbar_sp0'
rp_exec[126]='FC0 skb xbar-serdes error trace'
rp__ksh[126]='show_avago16nm_ltrace -s 2 fab_xbar_sp0'
rp_exec[127]='FC1 skb xbar-serdes init trace'
rp__ksh[127]='show_avago16nm_ltrace -s 0 fab_xbar_sp1'
rp_exec[128]='FC1 skb xbar-serdes error trace'
rp__ksh[128]='show_avago16nm_ltrace -s 2 fab_xbar_sp1'
rp_exec[129]='FC2 skb xbar-serdes init trace'
rp__ksh[129]='show_avago16nm_ltrace -s 0 fab_xbar_sp2'
rp_exec[130]='FC2 skb xbar-serdes error trace'
rp__ksh[130]='show_avago16nm_ltrace -s 2 fab_xbar_sp2'
rp_exec[131]='FC3 skb xbar-serdes init trace'
rp__ksh[131]='show_avago16nm_ltrace -s 0 fab_xbar_sp3'
rp_exec[132]='FC3 skb xbar-serdes error trace'
rp__ksh[132]='show_avago16nm_ltrace -s 2 fab_xbar_sp3'
rp_exec[133]='FC4 skb xbar-serdes init trace'
rp__ksh[133]='show_avago16nm_ltrace -s 0 fab_xbar_sp4'
rp_exec[134]='FC4 skb xbar-serdes error trace'
rp__ksh[134]='show_avago16nm_ltrace -s 2 fab_xbar_sp4'
rp_exec[135]='FC5 skb xbar-serdes init trace'
rp__ksh[135]='show_avago16nm_ltrace -s 0 fab_xbar_sp5'
rp_exec[136]='FC5 skb xbar-serdes error trace'
rp__ksh[136]='show_avago16nm_ltrace -s 2 fab_xbar_sp5'
rp_exec[137]='FC6 skb xbar-serdes init trace'
rp__ksh[137]='show_avago16nm_ltrace -s 0 fab_xbar_sp6'
rp_exec[138]='FC6 skb xbar-serdes error trace'
rp__ksh[138]='show_avago16nm_ltrace -s 2 fab_xbar_sp6'
rp_exec[139]='sh controllers fabric crossbar mac-stats instance 0 spine 0'
rp__ksh[139]='xbar_show stats -i 0 -f 0 mac'
rp_exec[140]='sh controllers fabric crossbar mac-stats instance 0 spine 1'
rp__ksh[140]='xbar_show stats -i 0 -f 1 mac'
rp_exec[141]='sh controllers fabric crossbar mac-stats instance 0 spine 2'
rp__ksh[141]='xbar_show stats -i 0 -f 2 mac'
rp_exec[142]='sh controllers fabric crossbar mac-stats instance 0 spine 3'
rp__ksh[142]='xbar_show stats -i 0 -f 3 mac'
rp_exec[143]='sh controllers fabric crossbar mac-stats instance 0 spine 4'
rp__ksh[143]='xbar_show stats -i 0 -f 4 mac'
rp_exec[144]='sh controllers fabric crossbar mac-stats instance 0 spine 5'
rp__ksh[144]='xbar_show stats -i 0 -f 5 mac'
rp_exec[145]='sh controllers fabric crossbar mac-stats instance 0 spine 6'
rp__ksh[145]='xbar_show stats -i 0 -f 6 mac'
rp_exec[146]='sh controllers fabric crossbar mac-stats instance 1 spine 0'
rp__ksh[146]='xbar_show stats -i 1 -f 0 mac'
rp_exec[147]='sh controllers fabric crossbar mac-stats instance 1 spine 1'
rp__ksh[147]='xbar_show stats -i 1 -f 1 mac'
rp_exec[148]='sh controllers fabric crossbar mac-stats instance 1 spine 2'
rp__ksh[148]='xbar_show stats -i 1 -f 2 mac'
rp_exec[149]='sh controllers fabric crossbar mac-stats instance 1 spine 3'
rp__ksh[149]='xbar_show stats -i 1 -f 3 mac'
rp_exec[150]='sh controllers fabric crossbar mac-stats instance 1 spine 4'
rp__ksh[150]='xbar_show stats -i 1 -f 4 mac'
rp_exec[151]='sh controllers fabric crossbar mac-stats instance 1 spine 5'
rp__ksh[151]='xbar_show stats -i 1 -f 5 mac'
rp_exec[152]='sh controllers fabric crossbar mac-stats instance 1 spine 6'
rp__ksh[152]='xbar_show stats -i 1 -f 6 mac'
rp_exec[153]='sh controller fabric health spine all'
rp__ksh[153]='show_fab_health -h -a'
rp__ksh[154]=''

# for all nodes
local_exec[1]='sh controllers fabric fia stats location $location' 
local__ksh[1]='fsi_show -f -s -n $fq_nodeid'
local_exec[2]='sh controllers fabric fia link-status location $location'
local__ksh[2]='fsi_show -f -l -n $fq_nodeid'
local_exec[3]='sh controller fabric fia bridge stats location $location'
local__ksh[3]='fsi_show -f -b -S -n $fq_nodeid'
local_exec[4]='sh controller fabric fia bridge flow-control location $location'
local__ksh[4]='fsi_show -f -b -X -n $fq_nodeid'
local_exec[5]='sh controllers fabric fia bridge sync-status location $location'
local__ksh[5]='fsi_show -f -b -L -n $fq_nodeid'
local_exec[6]='sh controllers fabric fia bridge ddr-status location $location'
local__ksh[6]='fsi_show -f -b -D -n $fq_nodeid'
local_exec[7]='sh controller fabric fia trace location $location'
local__ksh[7]='show_fia_ltrace -I .* -i $fq_nodeid'
local_exec[8]='sh controller fabric fia errors egress location $location'
local__ksh[8]='fsi_show -f -e -E -n $fq_nodeid'
local_exec[9]='sh controller fabric fia errors ingress location $location'
local__ksh[9]='fsi_show -f -e -N -n $fq_nodeid'
local_exec[10]='sh controller fabric fia drops egress location $location'
local__ksh[10]='fsi_show -f -d -E -n $fq_nodeid'
local_exec[11]='sh controller fabric fia drops ingress location $location'
local__ksh[11]='fsi_show -f -d -N -n $fq_nodeid'
local_exec[12]='sh controller fabric fia q-depth location $location'
local__ksh[12]='fsi_show -f -V -n $fq_nodeid'
local_exec[13]='sh controller fabric fia sequence-timeout location $location'
local__ksh[13]='fsi_show -f -R -n $fq_nodeid'
local_exec[14]='sh controller fabric fia q-depth sort location $location'
local__ksh[14]='fsi_show -f -V -Q -n $fq_nodeid'
local_exec[15]='sh controller fabric fia drops vqi-drop location $location'
local__ksh[15]='fsi_show -f -d -v -n $fq_nodeid'

# xbar_show doesn't work on LCs
#local_exec[14]='sh contr fabric crossbar statistics instance 0 location $location'
#local__ksh[14]='xbar_show stats -i 0 -s $fq_nodeid port'
#local_exec[15]='sh contr fabric crossbar link-status inst 0 location $location'
#local__ksh[15]='xbar_show link-status -i 0 -s $fq_nodeid'


local_exec[16]='sh contr fabric arb ltrace'
local__ksh[16]='show_fabarb_ltrace -I .*'
local_exec[17]='xbar init trace'
local__ksh[17]='show_sm15_ltrace -s 0 fab_xbar'
local_exec[18]='xbar error trace'
local__ksh[18]='show_sm15_ltrace -s 2 fab_xbar'
local_exec[19]='xbar-port init trace'
local__ksh[19]='show_fencer_ltrace -s 0 fab_xbar'
local_exec[20]='xbar-port error trace'
local__ksh[20]='show_fencer_ltrace -s 2 fab_xbar'
local_exec[21]='fia-port init trace'
local__ksh[21]='show_fencer_ltrace -s 0 fia'
local_exec[22]='fia-port error trace'
local__ksh[22]='show_fencer_ltrace -s 2 fia'
local_exec[23]='xbar-serdes init trace'
local__ksh[23]='show_avago28nm_ltrace -s 0 fab_xbar'
local_exec[24]='xbar-serdes error trace'
local__ksh[24]='show_avago28nm_ltrace -s 2 fab_xbar'
local_exec[25]='fia-serdes init trace'
local__ksh[25]='show_avago28nm_ltrace -s 0 fia'
local_exec[26]='fia-serdes error trace'
local__ksh[26]='show_avago28nm_ltrace -s 2 fia'
local_exec[27]='lightning trace'
local__ksh[27]='show_lightning_ltrace'
local_exec[28]='sh contr fabric arbiter link-status location $location'
local__ksh[28]='arb_show -S 0 -L $fq_nodeid'
local_exec[29]='skybolt xbar init trace'
local__ksh[29]='show_skb_ltrace -s 0 fab_xbar'
local_exec[30]='skybolt xbar error trace'
local__ksh[30]='show_skb_ltrace -s 2 fab_xbar'
local_exec[31]='lsq fia-serdes init trace'
local__ksh[31]='show_avago16nm_ltrace -s 0 fia'
local_exec[32]='lsq fia-serdes error trace'
local__ksh[32]='show_avago16nm_ltrace -s 2 fia'
local_exec[33]='skb xbar-serdes init trace'
local__ksh[33]='show_avago16nm_ltrace -s 0 fab_xbar'
local_exec[34]='skb xbar-serdes error trace'
local__ksh[34]='show_avago16nm_ltrace -s 2 fab_xbar'
local_exec[35]='lsq fia-port init trace'
local__ksh[35]='show_fencer2_ltrace -s 0 fia'
local_exec[36]='lsq fia-port error trace'
local__ksh[36]='show_fencer2_ltrace -s 2 fia'
local_exec[37]='skb xbar-port init trace'
local__ksh[37]='show_fencer2_ltrace -s 0 fab_xbar'
local_exec[38]='skb xbar-port error trace'
local__ksh[38]='show_fencer2_ltrace -s 2 fab_xbar'
local_exec[39]='tor arb agg trace'
local__ksh[39]='show_tornado_arbiter_ltrace'
local_exec[40]='lsp fia-serdes init trace'
local__ksh[40]='show_blkhwk_ltrace -s 0 fia'
local_exec[41]='lsp fia-serdes error trace'
local__ksh[41]='show_blkhwk_ltrace -s 2 fia'
local_exec[42]='sh contr fabric crossbar statistics instance 0 location $location'
local__ksh[42]='xbar_show stats -i 0 -s $fq_nodeid port'
local_exec[43]='sh contr fabric crossbar link-status inst 0 location $location'
local__ksh[43]='xbar_show link-status -i 0 -s $fq_nodeid'
local_exec[44]='sh contr fabric crossbar statistics instance 1 location $location'
local__ksh[44]='xbar_show stats -i 1 -s $fq_nodeid port'
local_exec[45]='sh contr fabric crossbar link-status inst 1 location $location'
local__ksh[45]='xbar_show link-status -i 1 -s $fq_nodeid'
local_exec[46]='show controllers fabric ltrace crossbar location $location'
local__ksh[46]='show_fabxbar_ltrace -i $fq_nodeid -I .*'
local_exec[47]='sh controllers fti trace process fialc location $location'
local__ksh[47]='show_ltrace_fabfti -i $fq_nodeid -P fialc'
local_exec[48]='sh controllers fti trace process fab_xbar location $location'
local__ksh[48]='show_ltrace_fabfti -i $fq_nodeid -P fab_xbar'
local_exec[49]='sh controllers fti trace process fab_arb location $location'
local__ksh[49]='show_ltrace_fabfti -i $fq_nodeid -P fab_arb'
local_exec[50]='show contr fabric crossbar mac-stats instance 0 location $location'
local__ksh[50]='xbar_show stats -i 0 -s $fq_nodeid mac'
local_exec[51]='show contr fabric crossbar mac-stats instance 1 location $location'
local__ksh[51]='xbar_show stats -i 1 -s $fq_nodeid mac'
local_exec[52]='sh controller fabric health location $location'
local__ksh[52]='show_fab_health -h -l $fq_nodeid'
local_exec[53]='sh asic-errors all detail location $location'
local__ksh[53]='asic_errors_show -n $fq_nodeid -a 0 -s -x 1 -t 0 -m 0'
local__ksh[54]=''

## following needs to be repeated for all nodes from RSP/RP
remote_exec[1]='sh contr fabric arbiter credit-usage linecard-location $r_loc location $location'
remote__ksh[1]='arb_show -C $r_fq_nodeid -L $fq_nodeid'
remote_exec[2]='show controllers pm vqi location $r_loc'
remote__ksh[2]='vkg_lcpm_show -V $r_fq_nodeid'
remote__ksh[3]=''

#repeat for $link 0-9 or 0-19 on RSP/RP
rsp_iter_exec[1]='sh contr fabric arb link "$link" location $location'
rsp_iter__ksh[1]='lit_show -S "$link"'
rsp_iter_exec[2]='sh contr fabric fpoe base slot $link'
rsp_iter__ksh[2]='fab_vqi_test -f 3 -n "$link"'
rsp_iter_exec[3]='sh contr fabric fabric vqi assignment slot $link'
rsp_iter__ksh[3]='fab_vqi_test -v -n "$link"'
rsp_iter_exec[4]='sh contr fabric arbiter vqitable "$link" location $location'
rsp_iter__ksh[4]='lit_show -V "$link"'
rsp_iter_exec[5]='sh contr fabric arbiter lditable "$link" location $location'
rsp_iter__ksh[5]='lit_show -D "$link"'
rsp_iter__ksh[6]=''

rp_arb_iter_exec[1]='sh contr fabric arbiter q-depth port-group $pg location $location'
rp_arb_iter__ksh[1]='arb_show -Q $pg -L $fq_nodeid'
rp_arb_iter__ksh[2]=''

admin_exec[1]=''
admin__ksh[1]=''

cmd_location="all"

# Depending on single or all nodes specified, set appropriate values
admin=0;
while [ "$#" -gt "0" ]; do
    case "$1" in
        -A) admin=1;                           shift 1;;
        -L) cmd_location="$2";                 shift 2;;
        -l) cmd_location="$2";                 shift 2;;
	-t) __cardtype="$2";                   shift 2;;
        *)  default_parser_function "$@"; shift $#;;
    esac
done
int_node_name=$(uname -n | cut -d "_"  -f2,3,4,5)
ext_node_name=`node_conversion -E $int_node_name`


display() {

  if [[ "$__cardtype" = "SYS" ]]; then
    exec_commands system
  else

    if [[ $admin -eq 1 ]]; then
        print_main_heading 'admin show tech-support fabric for location $location'
        exec_commands admin
    else
        print_main_heading 'show tech-support fabric for location $ext_node_name'
        qnet_local_node=$(uname -n | cut -d "_" -f2,3,4)
        nodelist=($(show_platform_sysdb | grep "[0-9]*\/[0-9]*\/[0-9]*" | cut -f 1 -d " "))
        local_node=$(node_conversion -E $qnet_local_node);

        case "$ext_node_name" in
            0/RP*)
              exec_commands local;
              l=0; while [[ $l -lt 26 ]]; do
                  pg="$l"
                  exec_commands rp_arb_iter
                  l=$(($l + 1))
              done;
              exec_commands rsp;
              exec_commands rp;
              if [[ "$cmd_location" = "all" ]]; then
                  # First find list of nodes in the system
                  #echo "\n Finding available nodes in the system"
                  i=1; 
                  for loc in ${nodelist[@]} ; do
                      r_nodename[$i]=$loc
                      node_name[$i]=`node_conversion -N $loc`
                      r_nodeid[$i]=`node_conversion -i /net/${node_name[$i]}`
                      r_nodeid_valid[$i]=0
                      i=$(($i + 1))
                  done
                  number_of_nodes=$(($i - 1))
              else
                  r_nodeid[1]=`node_conversion -i "$qnet_local_node"`
                  r_nodeid_valid[1]=$?
                  r_nodename[1]="$local_node"
                  number_of_nodes=1
              fi
              j=1; while [ $j -le $number_of_nodes ]; do
                  if [[ "${r_nodeid_valid[j]}" = "0" ]] ; then
                      r_loc=${r_nodename[$j]}
                      r_fq_nodeid=${r_nodeid[$j]}
                      exec_commands remote
                  fi
                  j=$(($j + 1))
              done;

              #MAX physical slot# for RP chassis is 19
              l=0; while [[ $l -lt 20 ]]; do
                  link="$l"
                  exec_commands rsp_iter
                  l=$(($l + 1))
              done;;


	    0/RSP*)
              exec_commands local;
              exec_commands rsp;
              l=0; while [[ $l -lt 26 ]]; do
                  pg="$l"
                  exec_commands rp_arb_iter
                  l=$(($l + 1))
              done;
              if [[ "$ext_node_name" = "$local_node" ]]; then
                  # First find list of nodes in the system
                  #echo "\n Finding available nodes in the system"
                  i=1;
                  for loc in ${nodelist[@]} ; do
                      r_nodename[$i]=$loc
                      node_name[$i]=`node_conversion -N $loc`
                      r_nodeid[$i]=`node_conversion -i /net/${node_name[$i]}`
                      r_nodeid_valid[$i]=0
                      i=$(($i + 1))
                  done
                  number_of_nodes=$(($i - 1))
              else
                  r_nodeid[1]=`node_conversion -i "$qnet_local_node"`
                  r_nodeid_valid[1]=$?
                  r_nodename[1]="$local_node"
                  number_of_nodes=1
              fi
              j=1; while [ $j -le $number_of_nodes ]; do
                  if [[ "${r_nodeid_valid[j]}" = "0" ]] ; then
                      r_loc=${r_nodename[$j]}
                      r_fq_nodeid=${r_nodeid[$j]}
                      exec_commands remote
                  fi
                  j=$(($j + 1))
              done;

              #MAX physical slot# for RSP chassis is 9
              l=0; while [[ $l -lt 10 ]]; do
                  link="$l"
                  exec_commands rsp_iter
                  l=$(($l + 1))
              done;;

            *)
              exec_commands local;
        esac
    fi;

    enable_techs "" /pkg/bin/show_tech_fast_np
    enable_techs "" /pkg/bin/show_tech_punt_inject
    set_max_depth 2

    print_main_heading "show tech-support fabric complete"

  fi;
}

. /pkg/bin/show_tech_file_fragment
