X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=openflowplugin-impl%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fopenflowplugin%2Fimpl%2Fservices%2FPacketProcessingServiceImpl.java;h=85e198ef24c6fd8c53ce1ec88e882451927be904;hb=b55780a64bdcd852e705d01255d837dab8996325;hp=c59b5fee8da6ed50af42b4903a3c76495f495e53;hpb=8f5238390c79f7b36e52b43ecf6229ef3a8438dc;p=openflowplugin.git diff --git a/openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/services/PacketProcessingServiceImpl.java b/openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/services/PacketProcessingServiceImpl.java index c59b5fee8d..85e198ef24 100644 --- a/openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/services/PacketProcessingServiceImpl.java +++ b/openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/services/PacketProcessingServiceImpl.java @@ -7,26 +7,17 @@ */ package org.opendaylight.openflowplugin.impl.services; -import com.google.common.base.Function; -import com.google.common.util.concurrent.FutureCallback; -import com.google.common.util.concurrent.ListenableFuture; import java.util.concurrent.Future; -import org.opendaylight.openflowjava.protocol.api.connection.OutboundQueue; import org.opendaylight.openflowplugin.api.openflow.device.DeviceContext; -import org.opendaylight.openflowplugin.api.openflow.device.RequestContext; import org.opendaylight.openflowplugin.api.openflow.device.RequestContextStack; import org.opendaylight.openflowplugin.api.openflow.device.Xid; -import org.opendaylight.openflowplugin.api.openflow.statistics.ofpspecific.MessageSpy; import org.opendaylight.openflowplugin.openflow.md.core.sal.convertor.PacketOutConvertor; import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.OfHeader; -import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.PacketOutInput; import org.opendaylight.yang.gen.v1.urn.opendaylight.packet.service.rev130709.PacketProcessingService; import org.opendaylight.yang.gen.v1.urn.opendaylight.packet.service.rev130709.TransmitPacketInput; -import org.opendaylight.yangtools.yang.common.RpcError; import org.opendaylight.yangtools.yang.common.RpcResult; -import org.opendaylight.yangtools.yang.common.RpcResultBuilder; -public class PacketProcessingServiceImpl extends CommonService implements PacketProcessingService { +public final class PacketProcessingServiceImpl extends AbstractVoidService implements PacketProcessingService { public PacketProcessingServiceImpl(final RequestContextStack requestContextStack, final DeviceContext deviceContext) { super(requestContextStack, deviceContext); @@ -34,37 +25,11 @@ public class PacketProcessingServiceImpl extends CommonService implements Packet @Override public Future> transmitPacket(final TransmitPacketInput input) { - getMessageSpy().spyMessage(input.getImplementedInterface(), MessageSpy.STATISTIC_GROUP.TO_SWITCH_ENTERED); - - return handleServiceCall(new Function, ListenableFuture>>() { - @Override - public ListenableFuture> apply(final RequestContext requestContext) { - final Xid xid = requestContext.getXid(); - final PacketOutInput message = PacketOutConvertor.toPacketOutInput(input, getVersion(), xid.getValue(), - getDatapathId()); - - final OutboundQueue outboundQueue = getDeviceContext().getPrimaryConnectionContext().getOutboundQueueProvider(); - - outboundQueue.commitEntry(xid.getValue(), message, new FutureCallback() { - @Override - public void onSuccess(final OfHeader ofHeader) { - getMessageSpy().spyMessage(message.getImplementedInterface(), MessageSpy.STATISTIC_GROUP.TO_SWITCH_SUBMIT_SUCCESS); - final RpcResultBuilder rpcResultBuilder = RpcResultBuilder.success(); - requestContext.setResult(rpcResultBuilder.build()); - RequestContextUtil.closeRequstContext(requestContext); - } - - @Override - public void onFailure(final Throwable throwable) { - getMessageSpy().spyMessage(message.getImplementedInterface(), MessageSpy.STATISTIC_GROUP.TO_SWITCH_SUBMIT_FAILURE); - final RpcResultBuilder rpcResultBuilder = RpcResultBuilder.failed().withError(RpcError.ErrorType.APPLICATION, throwable.getMessage(), throwable); - requestContext.setResult(rpcResultBuilder.build()); - RequestContextUtil.closeRequstContext(requestContext); - } - }); - return requestContext.getFuture(); - } - }); + return handleServiceCall(input); + } + @Override + protected OfHeader buildRequest(final Xid xid, final TransmitPacketInput input) { + return PacketOutConvertor.toPacketOutInput(input, getVersion(), xid.getValue(), getDatapathId()); } }