SDN Controller Programming Guide
190
}
switches.removeAll(toDelete);
}
// -----
return switches;
}
...
private Switch getByMacAddress(MacAddress macAddress) {
SwitchFilter filter = new SwitchFilter();
filter.setMacAddressCondition(
new EqualityCondition<MacAddress>(macAddress,
EqualityCondition.Mode.EQUAL));
List<Switch> switches = find(filter, null);
if (!switches.isEmpty()) {
return switches.get(0);
}
return null;
}
void startHandlingControllerEvents(ControllerService controllerService) {
controllerService.addDataPathListener(dataPathListener);
Set<DataPathInfo> dataPaths = controllerService.getAllDataPathInfo();
Set<MacAddress> connectedSwitches = new HashSet<MacAddress>();
for (DataPathInfo dataPathInfo : dataPaths) {
connectedSwitches.add(dataPathInfo.dpid().getMacAddress());
}
for (Switch device : find(null, null)) {
if (connectedSwitches.contains(device.getMacAddress())) {
device.setActiveState(ActiveState.ON);
} else {
device.setActiveState(ActiveState.OFF);
}
update(device);
}
}
void stopHandlingControllerEvents(ControllerService controllerService) {
controllerService.removeDataPathListener(dataPathListener);
}
private class DataPathListenerImpl implements DataPathListener {