pts.sh 5.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196
  1. #!/bin/sh
  2. # file: scripts/pts.sh
  3. # This is an example PTS script for bash shells; Both Linux and Cygwin
  4. # bash are suitable shells;
  5. # Define proper values in files hardware.sh and firmware.sh, connect
  6. # two INT6300 devices that share a power strip then run this script;
  7. # THe script will define symbols, create a frame file and program one
  8. # device as a golden node; it then enters a loop that programs the
  9. # other device, runs two rate tests and resets the golden node;
  10. # ====================================================================
  11. # host symbols;
  12. # --------------------------------------------------------------------
  13. . /etc/environment
  14. . ${SCRIPTS}/hardware.sh
  15. . ${SCRIPTS}/firmware.sh
  16. # ====================================================================
  17. # file symbols;
  18. # --------------------------------------------------------------------
  19. CNT=1000
  20. PKT=frame.hex
  21. LOG=time.log
  22. DAK1=00:11:22:33:44:55:66:77:88:99:AA:BB:CC:DD:EE:FF
  23. DAK2=FF:EE:DD:CC:BB:AA:99:88:77:66:55:44:33:22:11:00
  24. # ====================================================================
  25. # create dummy ethernet frame;
  26. # --------------------------------------------------------------------
  27. cat > ${PKT} << EOF
  28. FF FF FF FF FF FF FF FF FF FF FF FF 08 00 FF FF
  29. FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
  30. FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
  31. FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
  32. FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
  33. FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
  34. FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
  35. FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
  36. FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
  37. FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
  38. FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
  39. FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
  40. FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
  41. FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
  42. FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
  43. FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
  44. FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
  45. FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
  46. FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
  47. FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
  48. FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
  49. FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
  50. FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
  51. FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
  52. FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
  53. FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
  54. FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
  55. FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
  56. FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
  57. FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
  58. FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
  59. FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
  60. EOF
  61. # ====================================================================
  62. # check environment;
  63. # --------------------------------------------------------------------
  64. if [ ! -f ${PIB} ]; then
  65. echo "File ${PIB} is missing or misplaced."
  66. exit 1
  67. elif [ ! -f ${NVM} ]; then
  68. echo "File ${NVM} is missing or misplaced."
  69. exit 1
  70. elif [ ! -f ${PKT} ]; then
  71. echo "File ${PKT} is missing or misplaced."
  72. exit 1
  73. fi
  74. # ====================================================================
  75. # check connections;
  76. # --------------------------------------------------------------------
  77. int6kwait -xqsi ${ETH1} -c10
  78. if [ ${?} != 0 ]; then
  79. echo "Reference Unit is not connected."
  80. exit 1
  81. fi
  82. int6kwait -xqsi ${ETH2} -c10
  83. if [ ${?} != 0 ]; then
  84. echo "Production Unit is not connected."
  85. exit 1
  86. fi
  87. # ====================================================================
  88. # program golden node;
  89. # --------------------------------------------------------------------
  90. clear
  91. echo
  92. echo Program Reference Unit
  93. echo
  94. MAC=00:B0:52:00:00:AA
  95. NMK=$(rkey secret.key -M)
  96. DAK=$(int6kid -Di ${ETH1})
  97. modpib -C0 -M ${MAC} -N ${NMK} -D ${DAK1} ${PIB}
  98. int6kp -i ${ETH1} -P ${PIB} -N ${NVM} -D ${DAK} -FF
  99. # ====================================================================
  100. # program and test devices;
  101. # --------------------------------------------------------------------
  102. while [ 1 ]; do
  103. clear
  104. echo $(date)
  105. echo
  106. echo Program Production Unit $((++unit))
  107. echo
  108. MAC=00:B0:52:00:00:BB
  109. NMK=$(rkey secret.key -M)
  110. DAK=$(int6kid -Di ${ETH2})
  111. modpib -C0 -M ${MAC} -N ${NMK} -D ${DAK2} ${PIB}
  112. int6kp -i ${ETH2} -P ${PIB} -N ${NVM} -D ${DAK} -FF
  113. echo
  114. echo Stabilize Devices
  115. echo
  116. int6kwait -w20
  117. echo
  118. echo Associate Devices
  119. echo
  120. int6k -i ${ETH1} -B1
  121. int6kwait -w3
  122. int6k -i ${ETH2} -B1
  123. int6kwait -rsai ${ETH2}
  124. int6kwait -rsai ${ETH2}
  125. # int6kwait -w10
  126. echo
  127. echo Rate Test One
  128. echo
  129. efsu -i ${ETH1} -hd ${NIC2} ${PKT} -l ${CNT}
  130. efsu -i ${ETH2} -hd ${NIC1} ${PKT} -l ${CNT}
  131. efsu -i ${ETH1} -hd ${NIC2} ${PKT} -l ${CNT}
  132. efsu -i ${ETH2} -hd ${NIC1} ${PKT} -l ${CNT}
  133. int6krate -ni ${ETH2}
  134. echo
  135. echo Reset Devices
  136. echo
  137. int6k -Ri ${ETH1}
  138. int6kwait -rsai ${ETH1}
  139. int6k -Ri ${ETH2}
  140. int6kwait -rsai ${ETH2}
  141. echo
  142. echo Stabilize Devices
  143. echo
  144. int6kwait -w20
  145. echo
  146. echo Rate Test Two
  147. echo
  148. efsu -i ${ETH1} -hd ${NIC2} ${PKT} -l ${CNT}
  149. efsu -i ${ETH2} -hd ${NIC1} ${PKT} -l ${CNT}
  150. efsu -i ${ETH1} -hd ${NIC2} ${PKT} -l ${CNT}
  151. efsu -i ${ETH2} -hd ${NIC1} ${PKT} -l ${CNT}
  152. int6krate -ni ${ETH2}
  153. echo
  154. echo Reset Reference Unit
  155. echo
  156. int6k -Ti ${ETH1}
  157. int6kwait -w10
  158. done