📄 pm5337_line_sonet_lopp.tcl
字号:
# 1. Poll BUSY Bit Poll_BUSY_Bit $devID $trace_iaddr_addr 15 # 2. Write Settings to Indirect Data Registers admwr $devID $trace_idata1_addr 0x30CD admwr $devID $trace_idata2_addr 0x3231 admwr $devID $trace_idata3_addr 0x3433 admwr $devID $trace_idata4_addr 0x3635 # 3. Specify Tributary Address for Expected Trace (0x1720) Bytes 0 to 7 (A[5..3] = 0) set RWB 0 set A 0 set iaddr_value [expr [expr $RWB << 14]|[expr $A << 11]|[expr $stm1 << 8]|[expr $tug3 << 6]|\ [expr $tug2 << 3]|[expr $tu]] admwr $devID $trace_iaddr_addr $iaddr_value ### Step 2 ### # 1. Poll BUSY Bit Poll_BUSY_Bit $devID $trace_iaddr_addr 15 # 2. Write Settings to Indirect Data Registers admwr $devID $trace_idata1_addr 0x3837 admwr $devID $trace_idata2_addr 0x4139 admwr $devID $trace_idata3_addr 0x4342 admwr $devID $trace_idata4_addr 0x4544 # 3. Specify Tributary Address for Expected Trace (0x1720) Bytes 8 to 15 (A[5..3] = 1) set RWB 0 set A 1 set iaddr_value [expr [expr $RWB << 14]|[expr $A << 11]|[expr $stm1 << 8]|[expr $tug3 << 6]|\ [expr $tug2 << 3]|[expr $tu]] admwr $devID $trace_iaddr_addr $iaddr_value } }#------------------------------------------------------------------------------# SCRIPT NAME: LINE_SONET_LO_BER_Config## DESCRIPTION: This procedure configure the TBER block in the # ADM622 device.## PARAMETERS : devID - This parameter is used to specify the device # under configuration ## intf - 1 (interface 1), 2 (interface 2)## payload - VT15, TU11, VT2, TU12, VT3, VT6, TU2, TU3## sd_level - SD BER Monitoring Level, valid options are:# 0x0 - Disabled SD Monitoring# 0x3 - 10E-3# 0x4 - 10E-4# ....# 0xC - 10E-12## sf_level - SF BER Monitoring Level, valid options are:# 0x0 - Disabled SD Monitoring# 0x3 - 10E-3# 0x4 - 10E-4# ....# 0xC - 10E-12## stm1 - 1~4 (STS-3/STM1 #1~#4) [optional]## tug3 -1~3 (TUG3 #1~#3) [optional]## tug2 - 1~7 (TUG2 #1~#7) [optional]## tu - 1~4 (TU #1~#4) [optional]## # NOTE : If no values are specified for stm1, tug3, tug2, # or tu, then the process configures all tributaries.# 'ber_rate' used for SD/SF level#------------------------------------------------------------------------------proc LINE_SONET_LO_BER_Config {devID intf payload sd_level sf_level {stm1 -1} {tug3 -1} {tug2 -1} {tu -1} } { source /usr/lib/cgi-bin/apps/tclscripts/PM5337_util.tcl source /usr/lib/cgi-bin/apps/tclscripts/PM5337_LINE_SONET_LUT.tcl ###################################### ##### Local Variable Declaration ##### ###################################### # Defining block name if {$intf == 1} { set TBER "LINE_SONET::LOPP::TBER_1" } elseif {$intf == 2} { set TBER "LINE_SONET::LOPP::TBER_2" } # Defining address offset set addr_0x17C1 [expr 0x17C1 + (($intf - 1)* 0x200)] # Defining CONFIG[1:0] values if {$payload == "VT15" || $payload == "TU11"} { set config 0x3 } elseif {$payload == "VT2" || $payload == "TU12"} { set config 0x2 } elseif {$payload == "VT3"} { set config 0x1 } elseif {$payload == "VT6" || $payload == "TU2" || $payload == "TU3"} { set config 0x0 } # Defining SD_EN value if {$sd_level >= 0x3 && $sd_level <= 0xC} { set sd_en 0x1 } else { set sd_en 0x0 } # Defining SF_EN value if {$sf_level >= 0x3 && $sf_level <= 0xC} { set sf_en 0x1 } else { set sf_en 0x0 } ########################################## ##### Initializing TBER Lookup Table ##### ########################################## #LINE_SONET_TBER_LUT_Config $devID $intf $payload ############################## ##### TBER Configuration ##### ############################## # Defining block name if {$intf == 1} { set TBER "LINE_SONET::LOPP::TBER_1" } elseif {$intf == 2} { set TBER "LINE_SONET::LOPP::TBER_2" } if {$stm1 == -1 || $tug3 == -1 || $tug2 == -1 || $tu == -1} { # Configure all VT/TU with same settings for {set stm1_index 0x1} {$stm1_index <= 0x4} {incr stm1_index} { for {set tug3_index 0x1} {$tug3_index <= 0x3} {incr tug3_index} { for {set tug2_index 0x1} {$tug2_index <= 0x7} {incr tug2_index} { # Writing Settings to Configuration Register set data [expr [expr $sf_level << 12]|[expr $sd_level << 18]|[expr $sf_en << 7]|[expr $sd_en << 6]|[expr $config << 0x4] ] admindwr $devID $TBER $data $addr_0x17C1 $stm1_index $tug3_index $tug2_index 0x1 } } } } else { # Configure specific VT/TU set data [expr [expr $sf_level << 12]|[expr $sd_level << 18]|[expr $sf_en << 7]|[expr $sd_en << 6]|[expr $config << 0x4] ] admindwr $devID $TBER $data $addr_0x17C1 $stm1 $tug3 $tug2 $tu }}#------------------------------------------------------------------------------# SCRIPT NAME: LINE_SONET_LO_MAPS_Config## DESCRIPTION: This procedure configure the MAPS functionality in# the SARC-L block## PARAMETERS : devID - This parameter is used to specify the device # under configuration ## interface - 1 or 2## G2i_RowPosition - 1, 2, 3, ..., 9 (0x1 - 0x9)## G2i_ColPosition - 1, 2, 3 (0x1 - 0x3) ## enable - 0 to disable, 1 to enable# # NOTE : G2i position parameters are only applicable to TU3 # payload##------------------------------------------------------------------------------proc LINE_SONET_LO_MAPS_Config {devID interface G2i_RowPosition G2i_ColPosition enable} { source /usr/lib/cgi-bin/apps/tclscripts/PM5337_util.tcl # Defining SARC-L register values set addr_1782 [expr (0x1782 + (($interface-1)*0x0200))] set addr_1783 [expr (0x1783 + (($interface-1)*0x0200))] set addr_1784 [expr (0x1784 + (($interface-1)*0x0200))] set addr_1785 [expr (0x1785 + (($interface-1)*0x0200))] set addr_1786 [expr (0x1786 + (($interface-1)*0x0200))] set addr_1787 [expr (0x1787 + (($interface-1)*0x0200))] set addr_1788 [expr (0x1788 + (($interface-1)*0x0200))] set addr_178B [expr (0x178B + (($interface-1)*0x0200))] ######################################## ##### Enable Low Order MAPS ##### ######################################## if {$enable == "1"} { ############################################################## ##### 1. Set L-Code value for each LO MAPS alarm ##### ############################################################## # L-Code MAPS ID Alarm # 0xFC 11110 OOF_ESSI (Same as HO MAPS)* # 0xF9 11010 AIS HO (Same as HO MAPS)* # # 0xA0 11100 AIS LO * # 0x9F 11001 LOP* # 0x9E 10111 UNEQ* # 0x9D 10101 TIM, TIU # 0x9C 11000 PSLM, PSLU # # 0x9B 10100 SF-BER-V 10^-3 # .. ... .. # 0x92 01011 SF-BER-V 10^-12 # # 0x91 01010 SD-BER-V 10^-3 # .. ... .. # 0x88 00001 SD-BER-V 10^-12 # ############################################## # Assign L-Code of 0xFC for OOF_ESSI # # i) Poll MAPS_BUSY until it is low Poll_BUSY_Bit $devID $addr_1784 15 # ii) Set MAPS_LCODE[7:0] = 0xFC in MAPS_ID[5:0] = 11110b set maps_lcode 0xFC set maps_table 0 set maps_id 0x1E set maps_rwb 0 set maps_req 0x1 set value [expr [expr $maps_rwb << 14]|[expr $maps_id << 1]| \ [expr $maps_table << 0]|[expr $maps_req << 15]] admwr $devID $addr_1785 $maps_lcode admwr $devID $addr_1784 $value ############################################## # Assign L-Code of 0xF9 for AIS HO # # i) Poll MAPS_BUSY until it is low Poll_BUSY_Bit $devID $addr_1784 15 # ii) Set MAPS_LCODE[7:0] = 0xF9 in MAPS_ID[5:0] = 11010b set maps_lcode 0xF9 set maps_table 0 set maps_id 0x1A set maps_rwb 0 set maps_req 0x1 set value [expr [expr $maps_rwb << 14]|[expr $maps_id << 1]| \ [expr $maps_table << 0]|[expr $maps_req << 15]] admwr $devID $addr_1785 $maps_lcode admwr $devID $addr_1784 $value ############################################## # Assign L-Code of 0xA0 for AIS LO # # i) Poll MAPS_BUSY until it is low Poll_BUSY_Bit $devID $addr_1784 15 # ii) Set MAPS_LCODE[7:0] = 0xA0 in MAPS_ID[5:0] = 11100b set maps_lcode 0xA0 set maps_table 0 set maps_id 0x1C set maps_rwb 0 set maps_req 0x1 set value [expr [expr $maps_rwb << 14]|[expr $maps_id << 1]| \ [expr $maps_table << 0]|[expr $maps_req << 15]] admwr $devID $addr_1785 $maps_lcode admwr $devID $addr_1784 $value ############################################## # Assign L-Code of 0x9F for LOP # # i) Poll MAPS_BUSY until it is low Poll_BUSY_Bit $devID $addr_1784 15 # ii) Set MAPS_LCODE[7:0] = 0x9F in MAPS_ID[5:0] = 11001b set maps_lcode 0x9F set maps_table 0 set maps_id 0x19 set maps_rwb 0 set maps_req 0x1 set value [expr [expr $maps_rwb << 14]|[expr $maps_id << 1]| \ [expr $maps_table << 0]|[expr $maps_req << 15]] admwr $devID $addr_1785 $maps_lcode admwr $devID $addr_1784 $value ############################################## # Assign L-Code of 0x9E for UNEQ # # i) Poll MAPS_BUSY until it is low #Poll_BUSY_Bit $devID $addr_1784 15 # ii) Set MAPS_LCODE[7:0] = 0x9E in MAPS_ID[5:0] = 10111b #set maps_lcode 0x9E #set maps_table 0 #set maps_id 0x17 #set maps_rwb 0 #set maps_req 0x1 #set value [expr [expr $maps_rwb << 14]|[expr $maps_id << 1]| \ # [expr $maps_table << 0]|[expr $maps_req << 15]] #admwr $devID $addr_1785 $maps_lcode #admwr $devID $addr_1784 $value ############################################## # Assign L-Code of 0x9D for TIM, TIU # # i) Poll MAPS_BUSY until it is low # Poll_BUSY_Bit $devID $addr_1784 15 # # ii) Set MAPS_LCODE[7:0] = 0x9D in MAPS_ID[5:0] = 10101b # set maps_lcode 0x9D # set maps_table 0 # set maps_id 0x15 # set maps_rwb 0 # set maps_req 0x1 # # set value [expr [expr $maps_rwb << 14]|[expr $maps_id << 1]| \ # [expr $maps_table << 0]|[expr $maps_req << 15]] # # admwr $devID $addr_1785 $maps_lcode # admwr $devID $addr_1784 $value ############################################## # Assign L-Code of 0x9C for PSLM, PSLU # # i) Poll MAPS_BUSY until it is low # Poll_BUSY_Bit $devID $addr_1784 15 # # ii) Set MAPS_LCODE[7:0] = 0x9C in MAPS_ID[5:0] = 11000b # set maps_lcode 0x9C # set maps_table 0 # set maps_id 0x18 # set maps_rwb 0 # set maps_req 0x1 # # set value [expr [expr $maps_rwb << 14]|[expr $maps_id << 1]| \ # [expr $maps_table << 0]|[expr $maps_req << 15]] # # admwr $devID $addr_1785 $maps_lcode # admwr $devID $addr_1784 $value ############################################## # Assign L-Code of 0x9B for SF-BER-V 10^-3 # # i) Poll MAPS_BUSY until it is low # Poll_BUSY_Bit $devID $addr_1784 15 # # ii) Set MAPS_LCODE[7:0] = 0x9B in MAPS_ID[5:0] = 10100b # set maps_lcode 0x9B # set maps_table 0 # set maps_id 0x14 # set maps_rwb 0 # set maps_req 0x1 # # set value [expr [expr $maps_rwb << 14]|[expr $maps_id << 1]| \ # [expr $maps_table << 0]|[expr $maps_req << 15]] # # admwr $devID $addr_1785 $maps_lcode # admwr $devID $addr_1784 $value ############################################## # Assign L-Code of 0x9A for SF-BER-V 10^-4 # # i) Poll MAPS_BUSY until it is low Poll_BUSY_Bit $devID $addr_1784 15 # ii) Set MAPS_LCODE[7:0] = 0x9A in MAPS_ID[5:0] = 10011b set maps_lcode 0x9A set maps_table 0 set maps_id 0x13 set maps_rwb 0 set maps_req 0x1 set value [expr [expr $maps_rwb << 14]|[expr $maps_id << 1]| \ [expr $maps_table << 0]|[expr $maps_req << 15]] admwr $devID $addr_1785 $maps_lcode admwr $devID $addr_1784 $value ############################################## # Assign L-Code of 0x99 for SF-BER-V 10^-5 # # i) Poll MAPS_BUSY until it is low #Poll_BUSY_Bit $devID $addr_1784 15 # ii) Set MAPS_LCODE[7:0] = 0x99 in MAPS_ID[5:0] = 10010b set maps_lcode 0x99 set maps_table 0 set maps_id 0x12 set maps_rwb 0 set maps_req 0x1 set value [expr [expr $maps_rwb << 14]|[expr $maps_id << 1]| \ [expr $maps_table << 0]|[expr $maps_req << 15]] admwr $devID $addr_1785 $maps_lcode admwr $devID $addr_1784 $value ############################################## # Assign L-Code of 0x98 for SF-BER-V 10^-6 # # i) Poll MAPS_BUSY until it is low Poll_BUSY_Bit $devID $addr_1784 15 # ii) Set MAPS_LCODE[7:0] = 0x98 in MAPS_ID[5:0] = 10001b set maps_lcode 0x98 set maps_table 0 set maps_id 0x11 set maps_rwb 0 set maps_req 0x1 set value [expr [expr $maps_rwb << 14]|[expr $maps_id << 1]| \ [expr $maps_table << 0]|[expr $maps_req << 15]] admwr $devID $addr_1785 $maps_lcode admwr $devID $addr_1784 $value Poll_BUSY_Bit $devID $addr_1784 15 ############################################## # Assign L-Code of 0x97 for SF-BER-V 10^-7 # # i) Poll MAPS_BUSY until it is low Poll_BUSY_Bit $devID $addr_1784 15 # ii) Set MAPS_LCODE[7:0] = 0x97 in MAPS_ID[5:0] = 10000b set maps_lcode 0x97 set maps_table 0 set maps_id 0x10 set maps_rwb 0 set maps_req 0x1
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -