proc ConfigStaticIpAuthVlan { args } { set portObjectIndex [lsearch $args -portObject] set portObject [lindex $args [expr $portObjectIndex + 1]] # $portObject could be a list of Protocol Stack interfaces # So, use foreach to loop every interface even though if it is only one interface. foreach intObject $portObject { set params {} set argIndex 0 while {$argIndex < [llength $args]} { set currentArg [lindex $args $argIndex] switch -exact -- $currentArg { -portObject { incr argIndex 2 } -vlanId { set vlanId [lindex $args [expr $argIndex + 1]] append params "-firstId $vlanId " incr argIndex 2 } -innerVlanId { set innerVlanId [lindex $args [expr $argIndex + 1]] append params "-innerFirstId $innerVlanId " incr argIndex 2 } -priority { set priority [lindex $args [expr $argIndex + 1]] append params "-priority $priority " incr argIndex 2 } -innerPriority { set innerPriority [lindex $args [expr $argIndex + 1]] append params "-innerPriority $innerPriority " incr argIndex 2 } -incrementBy { set increment [lindex $args [expr $argIndex + 1]] append params "-increment $increment " incr argIndex 2 } -innerIncrementBy { set innerIncrement [lindex $args [expr $argIndex + 1]] append params "-innerIncrement $innerIncrement " incr argIndex 2 } -incrementStep { set incrementStep [lindex $args [expr $argIndex + 1]] append params "-incrementStep $incrementStep " incr argIndex 2 } -innterIncrementStep { set innerIncrementStep [lindex $args [expr $argIndex + 1]] append params "-innerIncrementStep $innerIncrementStep " incr argIndex 2 } -enable { # True or False set enable [lindex $args [expr $argIndex + 1]] append params "-enable $enable " incr argIndex 2 } -innerEnable { # True or False set innerEnable [lindex $args [expr $argIndex + 1]] append params "-innerEnable $innerEnable " incr argIndex 2 } -name { set name [lindex $args [expr $argIndex + 1]] append params "-name $name " incr argIndex 2 } -tpid { # 0x8100 set tpid [lindex $args [expr $argIndex + 1]] append params "-tpid $tpdi " incr argIndex 2 } -innerTpid { # 0x8100 set innerTpid [lindex $args [expr $argIndex + 1]] append params "-innerTpid $innerTpdi " incr argIndex 2 } -tpid { # 0x8100 set tpid [lindex $args [expr $argIndex + 1]] append params "-tpid $tpdi " incr argIndex 2 } -count { # 4094 set uniqueCount [lindex $args [expr $argIndex + 1]] append params "-uniqueCount $uniqueCount " incr argIndex 2 } -innerCount { # 4094 set innerUniqueCount [lindex $args [expr $argIndex + 1]] append params "-innerUniqueCount $innerUniqueCount " incr argIndex 2 } default { puts "\nConfigStaticIpAuthVlan ERROR: No such parameter: $currentArg" return } } } # Default if {[lsearch $args -enabled] == -1} { append params "-enabled True " } if {[lsearch $args $innerVlanId] != -1 && [lsearch $args -innerEnable] == -1} { append params "-innerEnable True " } puts "\nConfigStaticIpAuthVlan: $intObject/vlanRange\n\t$params" foreach {param value} $params { ixNet setAttribute $intObject/vlanRange $param $value } ixNet commit } }