@Override
public List<DataObject> translate(SwitchConnectionDistinguisher cookie,
SessionContext sc, OfHeader msg) {
if(msg instanceof PortStatusMessage) {
PortStatusMessage port = (PortStatusMessage)msg;
List<DataObject> list = new CopyOnWriteArrayList<DataObject>();
BigInteger datapathId = sc.getFeatures().getDatapathId();
Long portNo = port.getPortNo();
Short version = port.getVersion();
if(port.getReason() == PortReason.OFPPRDELETE){
LOG.debug("PortStatusMessage: version {} dataPathId {} portNo {} reason {}",version, datapathId,portNo,port.getReason());
list.add(PortTranslatorUtil.translatePortRemoved(version, datapathId, portNo, port));
}else{
LOG.debug("PortStatusMessage: version {} dataPathId {} portNo {}",version, datapathId,portNo);
list.add(PortTranslatorUtil.translatePort(version, datapathId, portNo, port));
}
return list;
} else {
return Collections.emptyList();
}
}
}