2
puts "Randomally picking 10 ports and assigning random drop rate on"
3
########################################################################
5
# Inject Random Multicast Requests
8
########################################################################
10
# Set Random Bad Links
11
proc setNodePortErrProfile {node} {
12
# pick a random port number - but make sure you picked a connected one
15
while {!$done && ($cnt < 100) } {
16
set portNum [expr int([rmRand]*[IBNode_numPorts_get $node])+1]
17
set port [IBNode_getPort $node $portNum]
19
if {[IBPort_p_remotePort_get $port] != ""} {
26
puts "-E- Fail to get connected port for node $node"
30
# pick a random drop rate in the range 0 - 1 . The higher the number
31
# the more chances for drop.
34
# set the node drop rate
35
puts "-I- Setting drop rate:$dropRate on node:$node port:$portNum"
36
set portErrProf "-drop-rate-avg $dropRate -drop-rate-var 4"
37
IBMSNode_setPhyPortErrProfile sim$node $portNum $portErrProf
40
# get a random order of all the fabric nodes:
41
proc getNodesByRandomOreder {fabric} {
42
# get number of nodes:
43
set nodesByName [IBFabric_NodeByName_get $fabric]
45
set nodeNameNOrderList {}
46
foreach nodeNameNId [IBFabric_NodeByName_get $fabric] {
47
lappend nodeNameNOrderList [list [lindex $nodeNameNId 1] [rmRand]]
51
foreach nodeNameNOrder [lsort -index 1 -real $nodeNameNOrderList] {
52
lappend randNodes [lindex $nodeNameNOrder 0]
57
set fabric [IBMgtSimulator getFabric]
59
# get a random order of the nodes:
60
set randNodes [getNodesByRandomOreder $fabric]
61
set numNodes [llength $randNodes]
63
# now get the first N nodes for err profile ...
66
while {($numNodesUsed < $numNodes / 10) && ($numNodesUsed < 12) && ($idx < $numNodes)} {
67
set node [lindex $randNodes $idx]
68
# ignore the root node:
69
if {[IBNode_name_get $node] != "H-1/U1"} {
70
if {[IBNode_type_get $node] != 1} {
71
setNodePortErrProfile $node