X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=opendaylight%2Fprotocol_plugins%2Fopenflow%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Fprotocol_plugin%2Fopenflow%2Finternal%2FDataPacketServices.java;h=4c65645bfed8f98c53bc019e8351e7c2b09cec01;hb=dfa4383b0b5c9c6de340526a62aef731922fa29f;hp=adb9d20ef7d4338a287a6e721bbb23e9f034fca5;hpb=29f7cfb54b580928c7feac63abce028a7014b0d5;p=controller.git diff --git a/opendaylight/protocol_plugins/openflow/src/main/java/org/opendaylight/controller/protocol_plugin/openflow/internal/DataPacketServices.java b/opendaylight/protocol_plugins/openflow/src/main/java/org/opendaylight/controller/protocol_plugin/openflow/internal/DataPacketServices.java index adb9d20ef7..4c65645bfe 100644 --- a/opendaylight/protocol_plugins/openflow/src/main/java/org/opendaylight/controller/protocol_plugin/openflow/internal/DataPacketServices.java +++ b/opendaylight/protocol_plugins/openflow/src/main/java/org/opendaylight/controller/protocol_plugin/openflow/internal/DataPacketServices.java @@ -12,6 +12,8 @@ package org.opendaylight.controller.protocol_plugin.openflow.internal; import org.opendaylight.controller.protocol_plugin.openflow.IDataPacketMux; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import org.opendaylight.controller.sal.connection.IPluginOutConnectionService; +import org.opendaylight.controller.sal.core.NodeConnector; import org.opendaylight.controller.sal.packet.IPluginInDataPacketService; import org.opendaylight.controller.sal.packet.RawPacket; @@ -19,6 +21,7 @@ public class DataPacketServices implements IPluginInDataPacketService { protected static final Logger logger = LoggerFactory .getLogger(DataPacketServices.class); private IDataPacketMux iDataPacketMux = null; + private IPluginOutConnectionService connectionOutService; void setIDataPacketMux(IDataPacketMux s) { this.iDataPacketMux = s; @@ -30,8 +33,23 @@ public class DataPacketServices implements IPluginInDataPacketService { } } + void setIPluginOutConnectionService(IPluginOutConnectionService s) { + connectionOutService = s; + } + + void unsetIPluginOutConnectionService(IPluginOutConnectionService s) { + if (connectionOutService == s) { + connectionOutService = null; + } + } + @Override public void transmitDataPacket(RawPacket outPkt) { - this.iDataPacketMux.transmitDataPacket(outPkt); + NodeConnector nc = outPkt.getOutgoingNodeConnector(); + if (connectionOutService != null && connectionOutService.isLocal(nc.getNode())) { + this.iDataPacketMux.transmitDataPacket(outPkt); + } else { + logger.debug("{} is dropped in the controller "+outPkt); + } } }