Dan - 2016-04-19

Might be worth re-writing PopulateEtherChannels.pm to use dot3adaggportattachedaggid instead of ifStackStatus? Both are non-proprietary, but the LAG-MIB is supported on Cisco IOS, IOS-XE, and NX-OS whereas IF-MIB's ifStackStatus is not supported on NX-OS.

Use ifName to find interfaces like "[Pp]ort-channel" and note index from each
IF-MIB::ifName.369098761 = STRING: port-channel10

Use dot3adaggportattachedaggid to find members
IEEE8023-LAG-MIB::dot3adAggPortAttachedAggID.436232192 = INTEGER: 369098761
IEEE8023-LAG-MIB::dot3adAggPortAttachedAggID.436232704 = INTEGER: 369098761

For each of those indexes (436232192|436232704) use ifName/ifOperStatus/ifAdminStatus
IF-MIB::ifName.436232192 = STRING: Ethernet1/49
IF-MIB::ifName.436232704 = STRING: Ethernet1/50

IF-MIB::ifOperStatus.436232192 = INTEGER: up(1)
IF-MIB::ifOperStatus.436232704 = INTEGER: up(1)

IF-MIB::ifAdminStatus.436232192 = INTEGER: up(1)
IF-MIB::ifAdminStatus.436232704 = INTEGER: up(1)

For my uses I need to also generate alarms (this is not necessarily something that SwitchMap would use, but it's available):
For each member interface:
Admin/Oper = up/up --> OK/normal
Admin/Oper = up/down --> ALARM CONDITION
Admin/Oper = down/up --> invalid state
Admin/Oper = down/down --> OK/unused

Thoughts?