?? pm5337_line_sonet_lopp.tcl
字號:
#------------------------------------------------------------------------------# FILE NAME: PM5337_LINE_SONET_LOPP.tcl## DESCRIPTION: This file includes the following procedures:# 1) LINE_SONET_LO_Payload_Config# 2) LINE_SONET_LO_Trace_Config# 3) LINE_SONET_LO_BER_Config# 4) LINE_SONET_LO_MAPS_Config# # NOTES:## REVISION History:# Preliminary 1 - Script created#------------------------------------------------------------------------------#------------------------------------------------------------------------------# SCRIPT NAME: LINE_SONET_LO_Payload_Config## DESCRIPTION: # # PARAMETERS: devID - This parameter is used to specify the device # under configuration # # interface - 1 (interface 1), 2 (interface 2)## payload - STS-1, STS-3c, STS-12c, VT15, VT2, VT3, # VT6, AU3/C3, AU4/C4, AU4-4c, AU3/TU11, # AU3/TU12, AU3/TU2, AU4/TU11, AU4/TU12, # AU4/TU2, AU4/TU3## NOTES:##------------------------------------------------------------------------------proc LINE_SONET_LO_Payload_Config {devID interface payload} { source /home/apps/indirect.tcl source /usr/lib/cgi-bin/apps/tclscripts/PM5337_util.tcl ############################################ ##### Configure Low Order Playload ##### ############################################ ### Set proper register address to modify based on interface ### # Defining LOPP top level registers: n = 6 or 8 set addr_1660 [expr (0x1660 + (($interface-1)*0x0200))] set addr_1661 [expr (0x1661 + (($interface-1)*0x0200))] set addr_1662 [expr (0x1662 + (($interface-1)*0x0200))] set addr_1663 [expr (0x1663 + (($interface-1)*0x0200))] set addr_1664 [expr (0x1664 + (($interface-1)*0x0200))] set addr_1665 [expr (0x1665 + (($interface-1)*0x0200))] set addr_1666 [expr (0x1666 + (($interface-1)*0x0200))] set addr_1667 [expr (0x1667 + (($interface-1)*0x0200))] set addr_1668 [expr (0x1668 + (($interface-1)*0x0200))] set addr_1669 [expr (0x1669 + (($interface-1)*0x0200))] set addr_166A [expr (0x166A + (($interface-1)*0x0200))] set addr_166B [expr (0x166B + (($interface-1)*0x0200))] set addr_166C [expr (0x166C + (($interface-1)*0x0200))] set addr_166D [expr (0x166D + (($interface-1)*0x0200))] set addr_166E [expr (0x166E + (($interface-1)*0x0200))] set addr_HOPtr [expr (0x1760 + (($interface-1)*0x0200))] # Set VTPA_EN to '1' admwrb $devID $addr_1662 3 1 # Set the incoming payload configuration if {$payload == "VT6" || $payload == "AU3/TU2"} { ### STS-1 with VT6 or AU3 with TU2 ### # Configure LOPP MTSB Level # ITU3 = 0, ITUG3 = 0, OTUG3 = 0 admwr $devID $addr_1660 0x0000 admwr $devID $addr_1661 0x0000 set activetu 1 } elseif {$payload == "VT3"} { ### STS-1 with VT3 ### # Configure LOPP MTSB Level # ITU3 = 0, ITUG3 = 0, OTUG3 = 0 admwr $devID $addr_1660 0x0000 admwr $devID $addr_1661 0x0000 set activetu 2 } elseif {$payload == "VT2" || $payload == "AU3/TU12"} { ### STS-1 with VT2 or AU3 with TU12 ### # Configure LOPP MTSB Level # ITU3 = 0, ITUG3 = 0, OTUG3 = 0 admwr $devID $addr_1660 0x0000 admwr $devID $addr_1661 0x0000 set activetu 3 } elseif {$payload == "VT15" || $payload == "AU3/TU11"} { ### STS-1 with VT1.5 or AU3 with TU11### # Configure LOPP MTSB Level # ITU3 = 0, ITUG3 = 0, OTUG3 = 0 admwr $devID $addr_1660 0x0000 admwr $devID $addr_1661 0x0000 set activetu 4 } elseif {$payload == "AU4/TU2"} { ### AU4 with TU2 ### # Configure LOPP MTSB Level # ITU3 = 0, ITUG3 = 1, OTUG3 = 1 admwr $devID $addr_1660 0xF000 admwr $devID $addr_1661 0x000F set activetu 1 } elseif {$payload == "AU4/TU12"} { ### AU4 with TU12 ### # Configure LOPP MTSB Level # ITU3 = 0, ITUG3 = 1, OTUG3 = 1 admwr $devID $addr_1660 0xF000 admwr $devID $addr_1661 0x000F set activetu 3 } elseif {$payload == "AU4/TU11"} { ### AU4 with TU11 ### # Configure LOPP MTSB Level # ITU3 = 0, ITUG3 = 1, OTUG3 = 1 admwr $devID $addr_1660 0xF000 admwr $devID $addr_1661 0x000F set activetu 4 } elseif {$payload == "STS-1" || $payload == "STS-3c" || $payload == "STS-12c" || $payload == "AU3/C3" || $payload == "AU4/C4" || $payload == "AU4-4c"} { ### STS-1 with No VT or STS-3c or STS-12c or AU3/C3 ### # or AU4/C4 or AU4-4c # Configure LOPP MTSB Level # ITU3 = 1, ITUG3 = 0, OTUG3 = 0 admwr $devID $addr_1660 0x0FFF admwr $devID $addr_1661 0x0000 ### Select Bypass path admwr $devID $addr_1664 0x0000 set activetu 0 } elseif {$payload == "AU4/TU3"} { ### AU4/TU3 ### # Configure LOPP MTSB Level # ITU3 = 1, ITUG3 = 1, OTUG3 = 1 admwr $devID $addr_1660 0xFFFF admwr $devID $addr_1661 0x000F ### Select Tributary path ### admwr $devID $addr_1664 0x0FFF set activetu 0 } # If there is VT on data stream, perform following configuration. if {$activetu != 0} { ### Select Tributary path ### admwr $devID $addr_1664 0x0FFF # VTPI block VT/TU types configuration for {set stm1 1} {$stm1 <= 4} {incr stm1} { for {set tug3 1} {$tug3 <= 3} {incr tug3} { for {set tug2 1} {$tug2 <= 7} {incr tug2} { #for {set tu 1} {$tu <= $activetu} {incr tu} { # Declare VTPI indirect address register address offset # in Hex (1n00H); n= 6 or 8 set indaddr [expr 0x1600 + 0x0200 * ($interface-1)] # Set tributary type in indirect data register #1 if {$payload == "VT6" || $payload == "AU3/TU2" || $payload == "AU4/TU2"} { set value 0x0000 } if {$payload == "VT3"} { set value 0x0800 } if {$payload == "VT2" || $payload == "AU3/TU12" || $payload == "AU4/TU12"} { set value 0x1000 } if {$payload == "VT15" || $payload == "AU3/TU11" || $payload == "AU4/TU11"} { set value 0x1800 } if {$interface == 1} { # Writing to register 0x1601 admindwr $devID LINE_SONET::LOPP::VTPI_1 $value 0x1601 $stm1 $tug3 $tug2 1 } elseif {$interface == 2} { # Writing to register 0x1801 admindwr $devID LINE_SONET::LOPP::VTPI_2 $value 0x1801 $stm1 $tug3 $tug2 1 } #} } } } #puts "rtop<br>" # RTOP336 block VT/TU types Configuration for {set stm1 1} {$stm1 <= 4} {incr stm1} { for {set tug3 1} {$tug3 <= 3} {incr tug3} { for {set tug2 1} {$tug2 <= 7} {incr tug2} { #for {set tu 1} {$tu <= $activetu} {incr tu} { # Declare RTOP indirect address register address offset # in Hex (1n81H); n= 6 or 8 set indaddr [expr 0x1681 + 0x0200 * ($interface-1)] set rd2clr 1 # Set tributary type in indirect data register #1 if {$payload == "VT6" || $payload == "AU3/TU2" || $payload == "AU4/TU2"} { set value 0x0000 } if {$payload == "VT3"} { set value 0x0002 } if {$payload == "VT2" || $payload == "AU3/TU12" || $payload == "AU4/TU12"} { set value 0x0004 } if {$payload == "VT15" || $payload == "AU3/TU11" || $payload == "AU4/TU11"} { set value 0x0006 } if {$interface == 1} { admindwr $devID LINE_SONET::LOPP::RTOP336_1 $value 0x1682 $stm1 $tug3 $tug2 1 } elseif {$interface ==2} { admindwr $devID LINE_SONET::LOPP::RTOP336_2 $value 0x1882 $stm1 $tug3 $tug2 1 } #} } } } #puts "rttb<br>" # RTTB336 block VT/TU types Configuration for {set stm1 1} {$stm1 <= 4} {incr stm1} { for {set tug3 1} {$tug3 <= 3} {incr tug3} { for {set tug2 1} {$tug2 <= 7} {incr tug2} { #for {set tu 1} {$tu <= $activetu} {incr tu} { # Declare RTTB indirect address register address offset # in Hex (1n01H); n= 7 or 9 set indaddr [expr 0x1701 + 0x0200 * ($interface-1)] set rd2clr 1 # Set tributary type in indirect data register #1 if {$payload == "VT6" || $payload == "AU3/TU2" || $payload == "AU4/TU2"} { set value 0x0000 } if {$payload == "VT3"} { set value 0x1000 } if {$payload == "VT2" || $payload == "AU3/TU12" || $payload == "AU4/TU12"} { set value 0x2000 } if {$payload == "VT15" || $payload == "AU3/TU11" || $payload == "AU4/TU11"} { set value 0x3000 } if {$interface == 1} { admindwr $devID LINE_SONET::LOPP::RTTB336_1 $value 0x1702 $stm1 $tug3 $tug2 1 } elseif {$interface ==2} { admindwr $devID LINE_SONET::LOPP::RTTB336_2 $value 0x1902 $stm1 $tug3 $tug2 1 } #} } } } # VTPA block VT/TU types Configuration #puts "vtpa<br>" # Set pointer to 522H admwr $devID $addr_HOPtr 0x6A0A for {set stm1 1} {$stm1 <= 4} {incr stm1} { for {set tug3 1} {$tug3 <= 3} {incr tug3} { for {set tug2 1} {$tug2 <= 7} {incr tug2} { #for {set tu 1} {$tu <= $activetu} {incr tu} { # Declare VTPA indirect address register address offset # in Hex (1n40H); n= 7 or 9 set indaddr [expr 0x1740 + 0x0200 * ($interface-1)] # Set tributary type in indirect data register #1 if {$payload == "VT6" || $payload == "AU3/TU2" || $payload == "AU4/TU2"} { set value 0x0000 } if {$payload == "VT3"} { set value 0x0200 } if {$payload == "VT2" || $payload == "AU3/TU12" || $payload == "AU4/TU12"} { set value 0x0400 } if {$payload == "VT15" || $payload == "AU3/TU11" || $payload == "AU4/TU11"} { set value 0x0600 } if {$interface == 1} { admindwr $devID LINE_SONET::LOPP::VTPA_1 $value 0x1741 $stm1 $tug3 $tug2 1 } elseif {$interface ==2} { admindwr $devID LINE_SONET::LOPP::VTPA_2 $value 0x1941 $stm1 $tug3 $tug2 1 } #} } } } } }#------------------------------------------------------------------------------# SCRIPT NAME: LINE_SONET_LO_Trace_Config## DESCRIPTION: This procedure configures the RTTB336 blocks for# a specified tributary in the LOPP.# # PARAMETERS: devID - This parameter is used to specify the device # under configuration ## interface - 1 or 2## itumode - '0' Telecordia mode, '1' ITU-T mode## length16 - '0' for 64 bytes or '1' for 16 bytes## sync - '0' synchronization, '1' no synchronization## stm1 - 1 to 4 (STS-3/STM1 #1~#4)## tug3 - 1 to 3 (TUG3 #1~#3)## tug2 - 1 to 7 (TUG2 #1~#7)## tu - 1 to 4 (TU #1~#4)## enable - '1' to enable or '0' to disable## NOTE: Default expected trace message is# 0 1 2 3 4 5 6 7 8 9 A B C D E##------------------------------------------------------------------------------proc LINE_SONET_LO_Trace_Config {devID interface itumode length16 sync stm1 tug3 tug2 tu enable} { source /usr/lib/cgi-bin/apps/tclscripts/PM5337_util.tcl ### Define indirect address register and indirect data register address value ### set iaddr_addr [expr 0x1701 + (0x0200 * ($interface-1))] set idata_addr [expr 0x1702 + (0x0200 * ($interface-1))] set trace_iaddr_addr [expr 0x1720 + (0x0200 * ($interface-1))] set trace_idata1_addr [expr 0x1721 + (0x0200 * ($interface-1))] set trace_idata2_addr [expr 0x1722 + (0x0200 * ($interface-1))] set trace_idata3_addr [expr 0x1723 + (0x0200 * ($interface-1))] set trace_idata4_addr [expr 0x1724 + (0x0200 * ($interface-1))] if {$enable == 1} { ############################################################################ ##### Set RTTB336 Indirect Tributary Configuration and Status Register ##### ############################################################################ if {$devID != -1} { # Note when devID is set to -1, the device read and device write function # will not be performed. Instead, the primitive command will be displayed # on the console. Hence the following Read-Modify-Write procedure will not # be performed wht devID is set to -1. ##### Read Initial Register Value ##### # 1. Poll Busy Bit Poll_BUSY_Bit $devID $iaddr_addr 15 # 2. Specify which tributary to read set RWB 1 set iaddr_value [expr [expr $RWB << 14]|[expr $stm1 << 8]|[expr $tug3 << 6]|[expr $tug2 << 3]|$tu] admwr $devID $iaddr_addr $iaddr_value # 3. Poll Busy Bit Poll_BUSY_Bit $devID $iaddr_addr 15 # 4. Read register content set init_value [admrd $devID $idata_addr] set init_value 0x0 ##### Write Settings to Register ##### # 1. Poll Busy Bit Poll_BUSY_Bit $devID $iaddr_addr 15 # 2. Write setting to indirect data register set idata_value [expr [expr $init_value & 0xF73F]|[expr $itumode << 11]|[expr $sync << 7]|[expr $length16 << 6]] admwr $devID $idata_addr $idata_value # 3. Specify which tributary to write set RWB 0 set iaddr_value [expr [expr $RWB << 14]|[expr $stm1 << 8]|[expr $tug3 << 6]|[expr $tug2 << 3]|$tu] admwr $devID $iaddr_addr $iaddr_value } else { # Display message on console puts "Note: Performing Read-Modify-Write on RTTP 336 indirect register 0x1702 <br>" puts " for STM1= $stm1 TUG3= $tug3 TUG2= $tug2 TU= $tu , the following bits are set: <br>" puts " ITUMODE= $itumode LENGTH16= $length16 NOSYNC= $sync <br> <br>" puts "See LINE_SONET_LO_Trace_Config for details. <br>" } ################################################# ##### Set Expected Trace for First 16 Bytes ##### ################################################# ### Step 1 ###
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -