SDN Controller Programming Guide

191
@Override
public void queueEvent(QueueEvent event) {
}
@Override
public void event(DataPathEvent event) {
if (event.type() == OpenflowEventType.DATAPATH_CONNECTED ||
event.type() == OpenflowEventType.DATAPATH_DISCONNECTED) {
Switch device = etByMacAddress(event.dpid().getMacAddress());
if (device != null) {
if (event.type()== OpenflowEventType.DATAPATH_CONNECTED){
device.setActiveState(ActiveState.ON);
} else {
device.setActiveState(ActiveState.OFF);
}
update(device);
}
}
}
}
}
SwitchComponent.java Consuming ControllerService:
package com.hp.hm.impl;
import com.hp.of.ctl.ControllerService;
...
@Component
@Service
public class SwitchComponent implements SwitchService {
...
@Reference(policy = ReferencePolicy.DYNAMIC,
cardinality = ReferenceCardinality.MANDATORY_UNARY)
private volatile ControllerService controllerService;
...
@Activate
public void activate() {
delegate = new SwitchManager(systemInformationService);
delegate.setAlertService(alertService);
delegate.setAuditLogService(auditLogService);
delegate.startHandlingControllerEvents(controllerService);
}
@Deactivate
public void deactivate() {