proc ConfigPortSpeed {args} { # Parameters: # -port "$ixChassisIp 1 2" # -portList [list "$ixChassisIp 1 2" "$ixChassisIp 1 3"] # # -cardType: ethernet, ethernetvm, hubndredGigLan, novusHundredGigLan, novusTenGigLan # fc, fortyGigLan, OAM, pos, tenFourtyHundredGigLan, tenGigLan, tenGigWan # -speed # For -cardType ethernet # -autoNegotiate: True|False # -speed: auto, speed1000, speed100fd, speed100hd, speed10fd, speed10hd # # For -cardType ethernetvm # -speed speed100, speed1000, speed10g, speed2000, speed20g, speed25g, speed3000, speed30g, # speed4000, speed5000, speed50g, speed6000, speed7000, speed9000 # # For -cardType hundredGigLan # -speed speed100g, speed40g # # For -cardType novusHundredGigLan # -enableAutoNegotiation: True|False # -speed: speed100g, speed10g, speed25g, speed40g, speed50g # # For -cardType novusTenGigLan # -autoNegotiate: True|False # -speed: speed1000, speed100fd, speed10g, speed2.5g, speed5g # # Look below under -speed for parameter inputs. # Note: Some port speed doesn't have autonegotation. set params {} set argIndex 0 while {$argIndex < [llength $args]} { set currentArg [lindex $args $argIndex] switch -exact -- $currentArg { -port { set port [lindex $args [expr $argIndex + 1]] incr argIndex 2 } -portList { set portList [lindex $args [expr $argIndex + 1]] incr argIndex 2 } -cardType { # ethernet, ethernetvm, hubndredGigLan, novusHundredGigLan, novusTenGigLan # fc, fortyGigLan, OAM, pos, tenFourtyHundredGigLan, tenGigLan, tenGigWan set cardType [lindex $args [expr $argIndex + 1]] incr argIndex 2 } -speed { set speed [lindex $args [expr $argIndex + 1]] append params " -speed $speed" incr argIndex 2 } -autonegotiate { # True|False set autonegotiate [lindex $args [expr $argIndex + 1]] append params " -autonegotiate $autonegotiate" incr argIndex 2 } default { puts "\nError ConfigPortSpeed: No such parameter: $currentArg" } } } set vportList {} if {[info exists portList]} { set vportList [GetVportMappingToPhyPort [list $portList]] } if {[info exists port]} { set vportList [GetVportMappingToPhyPort [list $port]] } puts "\nConfigPortSpeed: vports: $vportList" foreach vportObj $vportList { puts "\nConfigPortSpeed: $vportObj $params" set result [eval ixNet setAttribute $vportObj/l1Config/$cardType $params] puts "\tresult: $result" if {$result != "::ixNet::OK"} { puts "\nError ConfigPortSpeed" return 1 } } ixNet commit return 0 }