📄 l2_fm_up.tcl
字号:
# Sample testcase generator script for layer-2 FM ingress MAC tree#proc l2_fm_up { testcase } { set h0 [ $testcase find_memory h0 ] set dram3 [ $testcase find_memory dram3 ] set zbt [ $testcase find_memory zbt ]puts ""puts "Create Ingress direct table"#------------------------------------------------------------------------# Create and configure a full match ( FM ) tree for ingress #------------------------------------------------------------------------set fm [ $testcase create_tree 42 ]$fm configure -name fm_tree_up$fm configure -tree_type 0$fm configure -key_max_num_bits 48$fm configure -pscb_block fm_up_pscb_mem$fm configure -leaf_block fm_up_leaf_mem$fm configure -dt_block fm_up_dt_mem$fm configure -leaf_num_user_bytes 8#------------------------------------------------------------------------# Insert keys#------------------------------------------------------------------------# control overhead is 5 bytes (40 bits)# key is 6 bytes (48 bits)# leaf data is 8 bytes (64 bits)# total is 19 bytes (152 bits)# ******************* Mac addr ****************** Lid TB TDMU PrSf$fm insert_key 000000000000000000000000000000000000000000000000 -data 0000000000000000$fm insert_key 000000000000000100010001000100010001000100010001 -data 0001010100000100$fm insert_key 000000000000001000100010001000100010001000100010 -data 0002020200000200$fm insert_key 000000000000001100110011001100110011001100110011 -data 0003030300000300$fm insert_key 000000000000010001000100010001000100010001000100 -data 0004040400000000$fm insert_key 000000000000010101010101010101010101010101010101 -data 0005050500000102$fm insert_key 000000000000011001100110011001100110011001100110 -data 0006060600000202$fm insert_key 000000000000011101110111011101110111011101110111 -data 0007070700000302$fm insert_key 000000000000100010001000100010001000100010001000 -data 0008080800000002$fm insert_key 000000000000100110011001100110011001100110011001 -data 0009090900000102$fm insert_key 000000000000101010101010101010101010101010101010 -data 0000101000000200$fm insert_key 000000000000101110111011101110111011101110111011 -data 0001111100000300$fm insert_key 000000000000110011001100110011001100110011001100 -data 0002121200000000$fm insert_key 000000000000110111011101110111011101110111011101 -data 0003131300000100$fm insert_key 000000000000111011101110111011101110111011101110 -data 0004141400000200$fm insert_key 000000000000111111111111111111111111111111111111 -data 0005151500000302$fm insert_key 000000000001000000000000000000000000000000000000 -data 0006161600000002$fm insert_key 000000000001000100010001000100010001000100010001 -data 0007171700000102$fm insert_key 000000000001001000100010001000100010001000100010 -data 0008181800000202$fm insert_key 000000000001001100110011001100110011001100110011 -data 0009191900000302$fm insert_key 000000000001010001000100010001000100010001000100 -data 0010202000000000$fm insert_key 000000000001010101010101010101010101010101010101 -data 0001212100000100$fm insert_key 000000000001011001100110011001100110011001100110 -data 0002222200000200$fm insert_key 000000000001011101110111011101110111011101110111 -data 0003232300000300$fm insert_key 000000000001100010001000100010001000100010001000 -data 0004242400000000$fm insert_key 000000000001100110011001100110011001100110011001 -data 0005252500000102$fm insert_key 000000000001101010101010101010101010101010101010 -data 0006262600000202$fm insert_key 000000000001101110111011101110111011101110111011 -data 0007272700000302$fm insert_key 000000000001110011001100110011001100110011001100 -data 0008282800000002$fm insert_key 000000000001110111011101110111011101110111011101 -data 0009292900000102$fm insert_key 000000000001111011101110111011101110111011101110 -data 0000303000000200$fm insert_key 000000000001111111111111111111111111111111111111 -data 0001313100000300$fm insert_key 000000000010000000000000000000000000000000000000 -data 0002323200000000$fm insert_key 000000000010000100010001000100010001000100010001 -data 0003333300000100$fm insert_key 000000000010001000100010001000100010001000100010 -data 0004343400000200$fm insert_key 000000000010001100110011001100110011001100110011 -data 0005353500000302$fm insert_key 000000000010010001000100010001000100010001000100 -data 0006363600000002$fm insert_key 000000000010010101010101010101010101010101010101 -data 0007373700000102$fm insert_key 000000000010011001100110011001100110011001100110 -data 0008383800000202$fm insert_key 000000000010011101110111011101110111011101110111 -data 0009393900000302$fm insert_key 000000000010100010001000100010001000100010001000 -data 0000404000000001#------------------------------------------------------------------------# Check#------------------------------------------------------------------------puts "key 000EEEEEEEEE should go to 14: [ $fm find_key 000000000000111011101110111011101110111011101110 ]"#------------------------------------------------------------------------# Allocate memory blocks#------------------------------------------------------------------------# sram H0 is 128 bits wide - need height of 2 to fit our 152 bits#$h0 allocate fm_up_leaf_mem -size [ $fm cget -num_leaves ] -height 2 -width 1$dram3 allocate fm_up_dt_mem -size [ $fm cget -dt_size ] $zbt allocate fm_up_pscb_mem -size [ expr 2 * [ $fm cget -num_pscbs ] ]}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -