#!/pkg/bin/ksh
# ---------------------------------------------------------------------
# show_tech_rpl_fast - show commands for show tech-support rpl
#                      spawned by show_tech_fast
#
# April 2010, Manish Gupta 
#
# Copyright (c) 2010, 2013-2015, 2017 by cisco Systems, Inc.
# All rights reserved.
# --------------------------------------------------------------------

. /pkg/bin/show_tech_main_fragment

# Initialize any variables used.
__cardtype="unspecified"
set_dependency_cmd_index=1

# Parse the arguments to the script.
while [ "$#" -gt "0" ]; do
    case "$1" in
        -t) __cardtype="$2"; shift 2;;
        *)  default_parser_function "$@"; shift $#;;
    esac
done

if [ "$__cardtype" = "unspecified" ]; then
    __cardtype=`node_type`
fi

cmd="ls /pkg/bin/instcmd 2>/dev/null"
eval $cmd
plat=$?
if [[ $plat -eq 0 ]]
then
    Basic_exec[1]='show install active summary'
    Basic__ksh[1]='instcmd show install active summary'
else
    Basic_exec[1]='show install active'
    Basic__ksh[1]='sdr_instcmd show install active'
fi
Basic_exec[2]='show process policy_repository'
Basic__ksh[2]='sysmgr_show -o -p policy_repository'
Basic_exec[3]='show runn rpl'
Basic__ksh[3]='nvgen -c -q gl/policy_lang/'
Basic_exec[4]='show rpl maximum'
Basic__ksh[4]='pr_show -m -n all'
Basic_exec[5]='show sysdb registrations verification job $jid shared-plane'
Basic__ksh[5]='sysdbshow -s -c show vrfn all jid $jid'
Basic_exec[6]='show sysdb registrations vs job $jid shared-plane'
Basic__ksh[6]='sysdbshow -s -c show vsm all jid $jid'
Basic_exec[7]='show sysdb registrations notification job $jid shared-plane'
Basic__ksh[7]='sysdbshow -s -c show nfn all jid $jid'
Basic_exec[8]='show sysdb connections job $jid shared-plane'
Basic__ksh[8]='sysdbshow -s -c show conn basic jid $jid'
Basic_exec[9]='show sysdb registrations notification path /ipc/gl/policy_lang/policies/routing shared-plane'
Basic__ksh[9]='sysdbshow -s -c show nfn all path /ipc/gl/policy_lang/policies/routing'

jid=`sysmgr_show -o -p policy_repository | grep -E Job | cut -d":" -f2`


#
# Display policy dependencies.
#
display_policy_dependency() {
    print_main_heading "Display policy dependencies START"
    cmd_index=1
    policy_list=`nvgen -c -q gl/policy_lang/ | grep -E route-policy | cut -d" " -f2 | cut -d"(" -f1` 
    for policy_name in $policy_list; do 
      policy_dependency_exec[$cmd_index]="show rpl route-policy $policy_name uses all"
      policy_dependency__ksh[$cmd_index]="pr_show -n $policy_name -u 0x10 -d 0x0"
      ((cmd_index++))

      policy_dependency_exec[$cmd_index]="show rpl route-policy $policy_name reference"
      policy_dependency__ksh[$cmd_index]="pr_show -n $policy_name -r 0x0"
      ((cmd_index++))

      policy_dependency_exec[$cmd_index]="show rpl route-policy $policy_name attach" 
      policy_dependency__ksh[$cmd_index]="pr_show -n $policy_name -b 0x0"
      ((cmd_index++))

    done
    print_main_heading "Display policy dependencies END"
}

#
# Display as-path-set dependencies.
#
display_aspathset_dependency() {
    print_main_heading "Display as-path-set dependencies START"

    aspath_list=`nvgen -c -q gl/policy_lang/ | grep -E as-path-set | cut -d" " -f2` 
    for aspath_name in $aspath_list; do 
      set_dependency_exec[$set_dependency_cmd_index]="show rpl as-path-set $aspath_name reference"
      set_dependency__ksh[$set_dependency_cmd_index]="pr_show -n $aspath_name -r 0x3"
      ((set_dependency_cmd_index++))

      set_dependency_exec[$set_dependency_cmd_index]="show rpl as-path-set $aspath_name attach" 
      set_dependency__ksh[$set_dependency_cmd_index]="pr_show -n $aspath_name -b 0x3"
      ((set_dependency_cmd_index++))

    done
    print_main_heading "Display as-path-set dependencies END"
}

#
# Display community-set dependencies.
#
display_commset_dependency() {
    print_main_heading "Display community-set dependencies START"

    comm_list=`nvgen -c -q gl/policy_lang/ | grep -E ^community-set | cut -d" " -f2` 
    for comm_name in $comm_list; do 
      set_dependency_exec[$set_dependency_cmd_index]="show rpl community-set $comm_name reference"
      set_dependency__ksh[$set_dependency_cmd_index]="pr_show -n $comm_name -r 0x5"
      ((set_dependency_cmd_index++))

      set_dependency_exec[$set_dependency_cmd_index]="show rpl community-set $comm_name attach" 
      set_dependency__ksh[$set_dependency_cmd_index]="pr_show -n $comm_name -b 0x5"
      ((set_dependency_cmd_index++))

    done
    print_main_heading "Display community-set dependencies END"
}

#
# Display esi-set dependencies.
#
display_esiset_dependency() {
    print_main_heading "Display esi-set dependencies START"

    set_list=`nvgen -c -q gl/policy_lang/ | grep -E ^esi-set | cut -d" " -f2`
    for set_name in $set_list; do
      set_dependency_exec[$set_dependency_cmd_index]="show rpl esi-set $set_name reference"
      set_dependency__ksh[$set_dependency_cmd_index]="pr_show -n $set_name -r 0x11"
      ((set_dependency_cmd_index++))

      set_dependency_exec[$set_dependency_cmd_index]="show rpl esi-set $set_name attach"
      set_dependency__ksh[$set_dependency_cmd_index]="pr_show -n $set_name -b 0x11"
      ((set_dependency_cmd_index++))

    done
    print_main_heading "Display esi-set dependencies END"
}

#
# Display etag-set dependencies.
#
display_etagset_dependency() {
    print_main_heading "Display etag-set dependencies START"

    set_list=`nvgen -c -q gl/policy_lang/ | grep -E ^etag-set | cut -d" " -f2`
    for set_name in $set_list; do
      set_dependency_exec[$set_dependency_cmd_index]="show rpl etag-set $set_name reference"
      set_dependency__ksh[$set_dependency_cmd_index]="pr_show -n $set_name -r 0x10”
      ((set_dependency_cmd_index++))

      set_dependency_exec[$set_dependency_cmd_index]="show rpl etag-set $set_name attach"
      set_dependency__ksh[$set_dependency_cmd_index]="pr_show -n $set_name -b 0x10”
      ((set_dependency_cmd_index++))

    done
    print_main_heading "Display etag-set dependencies END"
}

#
# Display large-community-set dependencies.
#
display_largecommset_dependency() {
    print_main_heading "Display large-community-set dependencies START"

    set_list=`nvgen -c -q gl/policy_lang/ | grep -E ^large-community-set | cut -d" " -f2`
    for set_name in $set_list; do
      set_dependency_exec[$set_dependency_cmd_index]="show rpl large-community-set $set_name reference"
      set_dependency__ksh[$set_dependency_cmd_index]="pr_show -n $set_name -r 0x6”
      ((set_dependency_cmd_index++))

      set_dependency_exec[$set_dependency_cmd_index]="show rpl large-community-set $set_name attach"
      set_dependency__ksh[$set_dependency_cmd_index]="pr_show -n $set_name -b 0x6”
      ((set_dependency_cmd_index++))

    done
    print_main_heading "Display large-community-set dependencies END"
}

#
# Display mac-set dependencies.
#
display_macset_dependency() {
    print_main_heading "Display mac-set dependencies START"

    set_list=`nvgen -c -q gl/policy_lang/ | grep -E ^mac-set | cut -d" " -f2`
    for set_name in $set_list; do
      set_dependency_exec[$set_dependency_cmd_index]="show rpl mac-set $set_name reference"
      set_dependency__ksh[$set_dependency_cmd_index]="pr_show -n $set_name -r 0x12"
      ((set_dependency_cmd_index++))

      set_dependency_exec[$set_dependency_cmd_index]="show rpl mac-set $set_name attach"
      set_dependency__ksh[$set_dependency_cmd_index]="pr_show -n $set_name -b 0x12"
      ((set_dependency_cmd_index++))

    done
    print_main_heading "Display mac-set dependencies END"
}

#
# Display ospf-area-set dependencies.
#
display_ospfareaset_dependency() {
    print_main_heading "Display ospf-area-set dependencies START"

    set_list=`nvgen -c -q gl/policy_lang/ | grep -E ^ospf-area-set | cut -d" " -f2`
    for set_name in $set_list; do
      set_dependency_exec[$set_dependency_cmd_index]="show rpl ospf-area-set $set_name reference"
      set_dependency__ksh[$set_dependency_cmd_index]="pr_show -n $set_name -r 0xf"
      ((set_dependency_cmd_index++))

      set_dependency_exec[$set_dependency_cmd_index]="show rpl ospf-area-set $set_name attach"
      set_dependency__ksh[$set_dependency_cmd_index]="pr_show -n $set_name -b 0xf"
      ((set_dependency_cmd_index++))

    done
    print_main_heading "Display ospf-area-set dependencies END"
}

#
# Display prefix-set dependencies.
#
display_prefixset_dependency() {
    print_main_heading "Display prefix-set dependencies START"

    prefix_list=`nvgen -c -q gl/policy_lang/ | grep -E prefix-set | cut -d" " -f2` 
    for prefix_name in $prefix_list; do 
      set_dependency_exec[$set_dependency_cmd_index]="show rpl prefix-set $prefix_name reference"
      set_dependency__ksh[$set_dependency_cmd_index]="pr_show -n $prefix_name -r 0x2"
      ((set_dependency_cmd_index++))

      set_dependency_exec[$set_dependency_cmd_index]="show rpl prefix-set $prefix_name attach" 
      set_dependency__ksh[$set_dependency_cmd_index]="pr_show -n $prefix_name -b 0x2"
      ((set_dependency_cmd_index++))

    done
    print_main_heading "Display prefix-set dependencies END"
}

#
# Display rd-set dependencies.
#
display_rdset_dependency() {
    print_main_heading "Display rd-set dependencies START"

    rd_list=`nvgen -c -q gl/policy_lang/ | grep -E rd-set | cut -d" " -f2` 
    for rd_name in $rd_list; do 
      set_dependency_exec[$set_dependency_cmd_index]="show rpl rd-set $rd_name reference"
      set_dependency__ksh[$set_dependency_cmd_index]="pr_show -n $rd_name -r 0x4"
      ((set_dependency_cmd_index++))

      set_dependency_exec[$set_dependency_cmd_index]="show rpl as-path-set $rd_name attach" 
      set_dependency__ksh[$set_dependency_cmd_index]="pr_show -n $rd_name -b 0x4"
      ((set_dependency_cmd_index++))

    done
    print_main_heading "Display rd-set dependencies END"
}

#
# Display tag-set dependencies.
#
display_tagset_dependency() {
    print_main_heading "Display tag-set dependencies START"

    set_list=`nvgen -c -q gl/policy_lang/ | grep -E ^tag-set | cut -d" " -f2`
    for set_name in $set_list; do
      set_dependency_exec[$set_dependency_cmd_index]="show rpl tag-set $set_name reference"
      set_dependency__ksh[$set_dependency_cmd_index]="pr_show -n $set_name -r 0xe”
      ((set_dependency_cmd_index++))

      set_dependency_exec[$set_dependency_cmd_index]="show rpl tag-set $set_name attach"
      set_dependency__ksh[$set_dependency_cmd_index]="pr_show -n $set_name -b 0xe”
      ((set_dependency_cmd_index++))

    done
    print_main_heading "Display tag-set dependencies END"
}

#
# Display extcomm-rt-set dependencies.
#
display_extcommrtset_dependency() {
    print_main_heading "Display extcommunity-set rt dependencies START"

    extcomm_rt_list=`nvgen -c -q gl/policy_lang/ | grep -E extcommunity-set | grep -E rt | cut -d" " -f3` 
    for extcomm_rt_name in $extcomm_rt_list; do 
      set_dependency_exec[$set_dependency_cmd_index]="show rpl extcommunity-set rt $extcomm_rt_name reference"
      set_dependency__ksh[$set_dependency_cmd_index]="pr_show -n $extcomm_rt_name -r 0x8”
      ((set_dependency_cmd_index++))

      set_dependency_exec[$set_dependency_cmd_index]="show rpl extcommunity-set rt $extcomm_rt_name attach" 
      set_dependency__ksh[$set_dependency_cmd_index]="pr_show -n $extcomm_rt_name -b 0x8”
      ((set_dependency_cmd_index++))

    done
    print_main_heading "Display extcommunity-set rt dependencies END"
}

#
# Display extcomm-soo-set dependencies.
#
display_extcommsoo_dependency() {
    print_main_heading "Display extcommunity-set soo dependencies START"

    extcomm_soo_list=`nvgen -c -q gl/policy_lang/ | grep -E extcommunity-set | grep -E soo | cut -d" " -f3` 
    for extcomm_soo_name in $extcomm_soo_list; do 
      set_dependency_exec[$set_dependency_cmd_index]="show rpl extcommunity-set soo $extcomm_soo_name reference"
      set_dependency__ksh[$set_dependency_cmd_index]="pr_show -n $extcomm_soo_name -r 0x9”
      ((set_dependency_cmd_index++))

      set_dependency_exec[$set_dependency_cmd_index]="show rpl extcommunity-set soo $extcomm_soo_name attach" 
      set_dependency__ksh[$set_dependency_cmd_index]="pr_show -n $extcomm_soo_name -b 0x9”
      ((set_dependency_cmd_index++))

    done
    print_main_heading "Display extcommunity-set soo dependencies END"
}


#
# Display extcomm-opaque-set dependencies.
#
display_extcommopaque_dependency() {
    print_main_heading "Display extcommunity-set opaque dependencies START"

    extcomm_opaque_list=`nvgen -c -q gl/policy_lang/ | grep -E extcommunity-set | grep -E opaque | cut -d" " -f3` 
    for extcomm_opaque_name in $extcomm_opaque_list; do 
      set_dependency_exec[$set_dependency_cmd_index]="show rpl extcommunity-set opaque $extcomm_opaque_name reference"
      set_dependency__ksh[$set_dependency_cmd_index]="pr_show -n $extcomm_opaque_name -r 0xa”
      ((set_dependency_cmd_index++))

      set_dependency_exec[$set_dependency_cmd_index]="show rpl extcommunity-set opaque $extcomm_opaque_name attach" 
      set_dependency__ksh[$set_dependency_cmd_index]="pr_show -n $extcomm_opaque_name -b 0xa”
      ((set_dependency_cmd_index++))

    done
    print_main_heading "Display extcommunity-set opaque dependencies END"
}


#
# Display extcomm-seg-nh-set dependencies.
#
display_extcommsegnh_dependency() {
    print_main_heading "Display extcommunity-set seg-nh dependencies START"

    extcomm_segnh_list=`nvgen -c -q gl/policy_lang/ | grep -E extcommunity-set | grep -E seg-nh | cut -d" " -f3` 
    for extcomm_segnh_name in $extcomm_segnh_list; do 
      set_dependency_exec[$set_dependency_cmd_index]="show rpl extcommunity-set seg-nh $extcomm_segnh_name reference"
      set_dependency__ksh[$set_dependency_cmd_index]="pr_show -n $extcomm_segnh_name -r 0xb”
      ((set_dependency_cmd_index++))

      set_dependency_exec[$set_dependency_cmd_index]="show rpl extcommunity-set seg-nh $extcomm_segnh_name attach" 
      set_dependency__ksh[$set_dependency_cmd_index]="pr_show -n $extcomm_segnh_name -b 0xb”
      ((set_dependency_cmd_index++))

    done
    print_main_heading "Display extcommunity-set seg-nh dependencies END"
}


#
# Display extcomm-cost-set dependencies.
#
display_extcommcost_dependency() {
    print_main_heading "Display extcommunity-set cost dependencies START"

    extcomm_cost_list=`nvgen -c -q gl/policy_lang/ | grep -E extcommunity-set | grep -E cost | cut -d" " -f3` 
    for extcomm_cost_name in $extcomm_cost_list; do 
      set_dependency_exec[$set_dependency_cmd_index]="show rpl extcommunity-set cost $extcomm_cost_name reference"
      set_dependency__ksh[$set_dependency_cmd_index]="pr_show -n $extcomm_cost_name -r 0xc”
      ((set_dependency_cmd_index++))

      set_dependency_exec[$set_dependency_cmd_index]="show rpl extcommunity-set cost $extcomm_cost_name attach" 
      set_dependency__ksh[$set_dependency_cmd_index]="pr_show -n $extcomm_cost_name -b 0xc”
      ((set_dependency_cmd_index++))

    done
    print_main_heading "Display extcommunity-set cost dependencies END"
}

#
# Display extcomm-bandwidth-set dependencies.
#
display_extcommbandwidth_dependency() {
    print_main_heading "Display extcommunity-set bandwidth dependencies START"

    extcomm_bandwidth_list=`nvgen -c -q gl/policy_lang/ | grep -E extcommunity-set | grep -E bandwidth | cut -d" " -f3` 
    for extcomm_bandwidth_name in $extcomm_bandwidth_list; do 
      set_dependency_exec[$set_dependency_cmd_index]="show rpl extcommunity-set bandwidth $extcomm_bandwidth_name reference"
      set_dependency__ksh[$set_dependency_cmd_index]="pr_show -n $extcomm_bandwidth_name -r 0xd”
      ((set_dependency_cmd_index++))

      set_dependency_exec[$set_dependency_cmd_index]="show rpl extcommunity-set bandwidth $extcomm_bandwidth_name attach" 
      set_dependency__ksh[$set_dependency_cmd_index]="pr_show -n $extcomm_bandwidth_name -b 0xd”
      ((set_dependency_cmd_index++))

    done
    print_main_heading "Display extcommunity-set bandwidth dependencies END"
}

#
# Display policy-global set dependencies.
#
display_globalset_dependency() {
    print_main_heading "Display global-set dependencies START"

      set_dependency_exec[$set_dependency_cmd_index]="show rpl policy-global references"
      set_dependency__ksh[$set_dependency_cmd_index]="pr_show -n all -r 0x1"
      ((set_dependency_cmd_index++))

    print_main_heading "Display global-set dependencies END"
}


#
# Display set dependencies.
#
display_set_dependency() {
    print_main_heading "Display set dependencies START"
    display_aspathset_dependency
    display_commset_dependency
    display_esiset_dependency
    display_etagset_dependency
    display_largecommset_dependency
    display_macset_dependency
    display_ospfareaset_dependency
    display_prefixset_dependency
    display_rdset_dependency
    display_tagset_dependency
    display_extcommrtset_dependency
    display_extcommsoo_dependency
    display_extcommopaque_dependency
    display_extcommsegnh_dependency
    display_extcommcost_dependency
    display_extcommbandwidth_dependency
    display_globalset_dependency
    print_main_heading "Display set dependencies END"
}




#
# Display some of the sysdb information due to inc in the show command.
# we need to write this function
#
display_tmp() {
        cmd_index=1

        #TODO: Currently have problem in using pipe with showtech infra.

        #tmp_info_exec[$cmd_index]='show sysdb stat client shared-plane | inc policy'
        #tmp_info__ksh[$cmd_index]='sysdbshow -s -c stats client all | grep -E policy'
        #((cmd_index++))

        #tmp_info_exec[$cmd_index]='show sysdb trace verification shared-plane | inc $jid'
        #tmp_info__ksh[$cmd_index]='sysdb_show_ltrace -T vrfn -s | grep -E $jid'
        #((cmd_index++))

        tmp_info_exec[$cmd_index]='show sysdb stat client shared-plane'
        tmp_info__ksh[$cmd_index]='sysdbshow -s -c stats client all'
        ((cmd_index++))

        tmp_info_exec[$cmd_index]='show sysdb trace verification shared-plane'
        tmp_info__ksh[$cmd_index]='sysdb_show_ltrace -T vrfn -s'
        ((cmd_index++))
}

#
# Display all the client info.. this will display show process for all the.
# clients and show runn configuration for all the clients.
#
display_client_info() {
         cmd_index=1
         echo "/ipc/gl/policy_lang/dynaccess/" > /tmp/rpl_1000.log
         echo "ls" >> /tmp/rpl_1000.log
         sysdbcon -f /tmp/rpl_1000.log > /tmp/rpl_2000.log

         print_main_heading "display client process info and running configuration START"
         process_list=`cat /tmp/rpl_2000.log | grep dir | cut -f2 -d "'" | cut -f1 -d "/"`
           for process_name in $process_list; do 
              client_info_exec[$cmd_index]="+++ show process $process_name +++"
              client_info__ksh[$cmd_index]="sysmgr_show -o -p $process_name"
              ((cmd_index++))

              client_info_exec[$cmd_index]="+++ show runn router $process_name +++"
              client_info__ksh[$cmd_index]="nvgen -c -q gl/*$process_name/"
              ((cmd_index++))
           done
         print_main_heading "display client process info and running configuration END"
}

#
# Display pxl info for all route-policy and sets.
#
display_pxl() {
         cmd_index=1

         pxl_exec[$cmd_index]="display all the information in /ipc/gl/policy_lang sysdb space"
         echo "/ipc/gl/policy_lang/" > /tmp/rpl_1000.log
         echo "iterate -datalist -values" >> /tmp/rpl_1000.log
         pxl__ksh[$cmd_index]="sysdbcon -f /tmp/rpl_1000.log"
}

#
# Display client registration traces (reg_agent).
#
display_client_reg_trace() {
         print_main_heading "display client registration trace for dynuser START"

         cmd_index=1

         cmd1="ls /tmp/ltrace/policy_dynuser/ 2>/dev/null"
         eval $cmd1
         ret_val1=$?
         if [[ $ret_val1 -eq 0 ]]
         then
            file_list=`ls /tmp/ltrace/policy_dynuser/`
            for file_name in $file_list; do 
                client_reg_trace_exec[$cmd_index]="$file_name reg_agent traces"
                client_reg_trace__ksh[$cmd_index]="dyn_show_ltrace -f /tmp/ltrace/policy_dynuser/$file_name"

                ((cmd_index++))
            done
            print_main_heading "display client registration trace for dynuser END"
            return
         fi 

         #
         # For panini platforms
         #

         cmd2="ls /dev/shmem/ltrace/policy_dynuser/ 2>/dev/null"
         eval $cmd2
         ret_val2=$?
         if [[ $ret_val2 -eq 0 ]]
         then
            file_list2=`ls /dev/shmem/ltrace/policy_dynuser/`
            for file_name2 in $file_list2
            do
                client_reg_trace_exec[$cmd_index]="$file_name2 reg_agent traces"
                client_reg_trace__ksh[$cmd_index]="dyn_show_ltrace -f /dev/shmem/ltrace/policy_dynuser/$file_name2"

                ((cmd_index++))
            done
         fi
         print_main_heading "display client registration trace for dynuser END"
}

#
# Display clientlib traces.
#
display_clientlib_trace() {
         print_main_heading "display clientlib trace START"

         cmd_index=1
         cmd1="ls /tmp/ltrace/policy_clientlib/ 2>/dev/null"
         eval $cmd1
         ret_val1=$?
         if [[ $ret_val1 -eq 0 ]]
         then
            file_list1=`ls /tmp/ltrace/policy_clientlib/`
            for file_name1 in $file_list1
            do 
                pcl_trace_exec[$cmd_index]="$file_name1 clientlib traces"
                pcl_trace__ksh[$cmd_index]="pcl_show_ltrace -f /tmp/ltrace/policy_clientlib/$file_name1"

                ((cmd_index++))
            done
            print_main_heading "display clientlib trace END"
            return
         fi   
        
         #
         # For panini platforms
         #

         cmd2="ls /dev/shmem/ltrace/policy_clientlib/ 2>/dev/null"
         eval $cmd2
         ret_val2=$?
         if [[ $ret_val2 -eq 0 ]]
         then
            file_list2=`ls /dev/shmem/ltrace/policy_clientlib/`
            for file_name2 in $file_list2
            do
                pcl_trace_exec[$cmd_index]="$file_name2 clientlib traces"
                pcl_trace__ksh[$cmd_index]="pcl_show_ltrace -f /dev/shmem/ltrace/policy_clientlib/$file_name2"

                ((cmd_index++))
            done
         fi   
         print_main_heading "display clientlib trace END"
}


#
# Display policy repository traces for dynuser.
#
display_pr_dynreg_trace() {
         print_main_heading "display policy repository trace for dynreg START"
         
         cmd2="ls /tmp/ltrace/policy_repository/dynreg 2>/dev/null"
         eval $cmd2
         ret_val2=$?
         cmd_index=1

         dynreg_trace_exec[$cmd_index]="display policy repository trace for dynreg"
         if [[ $ret_val2 -eq 0 ]]
         then
            dynreg_trace__ksh[$cmd_index]="pr_show_ltrace -f /tmp/ltrace/policy_repository/dynreg"
         else
            dynreg_trace__ksh[$cmd_index]="pr_show_ltrace -f /dev/shmem/ltrace/policy_repository/dynreg"
         fi          

         ((cmd_index++))

         print_main_heading "display policy repository trace for dynreg END"
}




# A function called display() must be provided that calls the functions to
# run the required show commands. The display() function is called in
# /pkg/bin/show_tech_comp_file_frag

# No show commands run on individual RP or LC for BGP

display() {
    # Print the output heading
    print_main_heading "show tech-support rpl START"

    # Execute commands 
    if [ "$__cardtype" == "SYS" ]; then
        exec_commands Basic

        display_client_info
        exec_commands client_info

        display_policy_dependency
        exec_commands policy_dependency

        display_set_dependency
        exec_commands set_dependency

        display_tmp
        exec_commands tmp_info

        display_pxl
        exec_commands pxl

    else 
        #"$__cardtype" in "RP"|"DRP"
        display_clientlib_trace
        exec_commands pcl_trace

        display_client_reg_trace
        exec_commands client_reg_trace

        display_pr_dynreg_trace
        exec_commands dynreg_trace
    fi

    # Print the closing heading.
    print_main_heading "show tech-support rpl complete"
}

# Run the appropriate function depending on the node specified and if a
# file is specified write the output to that file. We need to redirect
# stderr to stdout when writing to a file because some of the show
# commands output to stderr instead of stdout
. /pkg/bin/show_tech_file_fragment
