import org.opendaylight.openflowplugin.api.openflow.md.core.SwitchConnectionDistinguisher;
import org.opendaylight.openflowplugin.api.openflow.md.core.session.SessionContext;
import org.opendaylight.openflowplugin.openflow.md.util.PortTranslatorUtil;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.types.rev130731.PortReason;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.OfHeader;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.PortStatusMessage;
import org.opendaylight.yangtools.yang.binding.DataObject;
import org.slf4j.LoggerFactory;
/**
- * translates {@link PortStatusMessage} from OF-API model to MD-SAL model,
+ * translates {@link PortStatusMessage} from OF-API model to MD-SAL model,
* supports OF-{1.0; 1.3}
*/
public class PortStatusMessageToNodeConnectorUpdatedTranslator implements IMDMessageTranslator<OfHeader, List<DataObject>> {
BigInteger datapathId = sc.getFeatures().getDatapathId();
Long portNo = port.getPortNo();
Short version = port.getVersion();
- LOG.debug("PortStatusMessage: version {} dataPathId {} portNo {}",version, datapathId,portNo);
- list.add(PortTranslatorUtil.translatePort(version, datapathId, portNo, port));
+ 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 {
// TODO - Do something smarter than returning null if translation fails... what Exception should we throw here?