Index: /opt/observium/includes/polling/fdb/rapid-city.inc.php =================================================================== --- /opt/observium/includes/polling/fdb/rapid-city.inc.php (Revision 10045) +++ /opt/observium/includes/polling/fdb/rapid-city.inc.php (Arbeitskopie) @@ -51,7 +51,50 @@ } } } +else +{ + // if its not rcBridge then may be its spbm + // rcBridgeSpbmMacStatus[1500050][14:61:2f:ec:49:1] = learned + // rcBridgeSpbmMacCPort[1500050][14:61:2f:ec:49:1] = 50 + $entries = snmpwalk_cache_twopart_oid($device, 'rcBridgeSpbmMacCPort', array(), 'RAPID-CITY', NULL, OBS_SNMP_ALL_TABLE); + if (snmp_status()) + { + $entries = snmpwalk_cache_twopart_oid($device, 'rcBridgeSpbmMacStatus', $entries, 'RAPID-CITY', NULL, OBS_SNMP_ALL_TABLE); + print_debug_vars($entries); + + $entries = snmpwalk_cache_twopart_oid($device, 'rcBridgeSpbmMacType', $entries, 'RAPID-CITY', NULL, OBS_SNMP_ALL_TABLE); + print_debug_vars($entries); + + $entries = snmpwalk_cache_twopart_oid($device, 'rcBridgeSpbmMacCVlanId', $entries, 'RAPID-CITY', NULL, OBS_SNMP_ALL_TABLE); + print_debug_vars($entries); + + foreach($entries as $isid => $data1) + { + foreach ($data1 as $mac => $entry) + { + + // Make sure the ifIndex is actually valid + if ($entry['rcBridgeSpbmMacType'] == "local" && is_array($port_ifIndex_table[$entry['rcBridgeSpbmMacCPort']])) + { + $port = $port_ifIndex_table[$entry['rcBridgeSpbmMacCPort']]; + + $mac = mac_zeropad($mac); + + $data = array(); + + $data['port_id'] = $port['port_id']; + $data['port_index'] = $entry['rcBridgeSpbmMacCPort']; + $data['fdb_status'] = $entry['rcBridgeSpbmMacStatus']; + $vlan = $entry['rcBridgeSpbmMacCVlanId']; + + $fdbs[$vlan][$mac] = $data; + } + } + } + } +} + unset($entries); // EOF \ No newline at end of file