Bug 1764 - moved Session related interfaces to openflowplugin-api
[openflowplugin.git] / openflowplugin / src / main / java / org / opendaylight / openflowplugin / openflow / md / lldp / LLDPSpeaker.java
index e258cfd2c3005976a3f950d4386b398aff5cf304..2f97e13513e2a0bf2fa49067d6623065bf320bbd 100644 (file)
@@ -21,7 +21,7 @@ import org.opendaylight.controller.liblldp.LLDP;
 import org.opendaylight.controller.liblldp.LLDPTLV;
 import org.opendaylight.controller.liblldp.PacketException;
 import org.opendaylight.openflowplugin.api.openflow.md.util.OpenflowVersion;
-import org.opendaylight.openflowplugin.openflow.md.ModelDrivenSwitch;
+import org.opendaylight.openflowplugin.api.openflow.md.ModelDrivenSwitch;
 import org.opendaylight.openflowplugin.openflow.md.util.InventoryDataServiceUtil;
 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev100924.MacAddress;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.FlowCapableNodeConnector;
@@ -81,11 +81,25 @@ public class LLDPSpeaker {
         TransmitPacketInputBuilder tpib = new TransmitPacketInputBuilder();
         tpib.setEgress(new NodeConnectorRef(nodeConnectorInstanceId));
         tpib.setNode(new NodeRef(nodeInstanceId));
-        tpib.setPayload(lldpDataFrom(nodeInstanceId, nodeConnectorInstanceId, flowConnector.getHardwareAddress(),
-                md.getSessionContext().getPrimaryConductor().getVersion()));
-        nodeConnectorMap.put(nodeConnectorInstanceId, tpib.build());
-
-        md.transmitPacket(nodeConnectorMap.get(nodeConnectorInstanceId));
+        if(nodeInstanceId == null) {
+            LOG.warn("addNodeConnector(): nodeInstanceId should not be null nodeConnectorInstanceId {} nodeConnector {}",nodeConnectorInstanceId,nodeConnector);
+        } else if (nodeConnectorInstanceId == null) {
+            LOG.warn("addNodeConnector(): nodeConnectorInstanceId should not be null nodeConnectorInstanceId {} nodeConnector {}",nodeConnectorInstanceId,nodeConnector);
+        } else if (flowConnector == null) {
+            LOG.warn("addNodeConnector(): flowConnector should not be null nodeConnectorInstanceId {} nodeConnector {}",nodeConnectorInstanceId,nodeConnector);
+        } else if (md == null) {
+            LOG.debug("addNodeConnector(): md is null, this usually means your switch disconnected while you had unprocessed NodeConnectorUpdated messages in queue nodeConnectorInstanceId {} nodeConnector {}",nodeConnectorInstanceId,nodeConnector);
+        } else if(md.getSessionContext() == null) {
+            LOG.warn("addNodeConnector(): md.getSessionContext() should not be null nodeConnectorInstanceId {} nodeConnector {}",nodeConnectorInstanceId,nodeConnector);
+        } else if (md.getSessionContext().getPrimaryConductor() == null) {
+            LOG.warn("addNodeConnector(): md.getSessionContext().getPrimaryConductor() should not be null nodeConnectorInstanceId {} nodeConnector {}",nodeConnectorInstanceId,nodeConnector);
+        } else {
+            tpib.setPayload(lldpDataFrom(nodeInstanceId,nodeConnectorInstanceId,flowConnector.getHardwareAddress(),
+                    md.getSessionContext().getPrimaryConductor().getVersion()));
+            nodeConnectorMap.put(nodeConnectorInstanceId, tpib.build());
+
+            md.transmitPacket(nodeConnectorMap.get(nodeConnectorInstanceId));
+        }
     }
 
     public void removeNodeConnector(