proc GetStaticIpAuthObjects { args } { # This API will return you all the Protocol Interface objects # based on the $port and/or $vlanId # port format = 1/1/3 # not 1/3 set argIndex 0 while {$argIndex < [llength $args]} { set currentArg [lindex $args $argIndex] switch -exact -- $currentArg { -port { set port [lindex $args [expr $argIndex + 1]] set port [join [lrange [split $port /] 1 end] /] incr argIndex 2 } -vlanId { set vlanId [lindex $args [expr $argIndex + 1]] incr argIndex 2 } default { puts "GetStaticIpAuthObjects: No such parameter: $currentArg" return 0 } } } foreach vport [ixNet getList [ixNet getRoot] vport] { set currentPort [ixNet getAttribute $vport -assignedTo] set chassis [lindex [split $currentPort :] 0] set card [lindex [split $currentPort :] 1] set portNumber [lindex [split $currentPort :] 2] if {$port == "$card/$portNumber"} { set interfaceObjList {} foreach ethernet [ixNet getList $vport/protocolStack ethernet] { foreach endpoint [ixNet getList $ethernet ipEndpoint] { foreach range [ixNet getList $endpoint range] { if {[info exists port] == 1 && [info exists vlanId] == 0} { #set currentIp [ixNet getAttribute $range/ipRange -ipAddress] lappend interfaceObjList $range } if {[info exists port] && [info exists vlanId]} { foreach vlanRange [ixNet getList $range/vlanRange vlanIdInfo] { set currentVlan [ixNet getAttribute $vlanRange -firstId] if {$currentVlan == $vlanId} { lappend interfaceObjList $range } } } } } } } } if {$interfaceObjList != ""} { return $interfaceObjList } else { return 0 } }