import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.EchoReply;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.EchoReplyInput;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.EchoReplyOutput;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.EchoRequestMessage;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.ErrorMessage;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.Experimenter;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.ExperimenterInput;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.ExperimenterMessage;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.ExperimenterOutput;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.FlowMod;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.FlowModInput;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.FlowModOutput;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.FlowRemovedMessage;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.GetAsync;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.GetAsyncInput;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.GetAsyncOutput;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.GroupModOutput;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.Hello;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.HelloInput;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.HelloMessage;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.HelloOutput;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.MeterMod;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.MeterModInput;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.MeterModOutput;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.MultipartReplyMessage;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.MultipartRequest;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.MultipartRequestInput;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.MultipartRequestOutput;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.OpenflowProtocolListener;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.PacketInMessage;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.PacketOut;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.PacketOutInput;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.PacketOutOutput;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.PortMod;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.PortModInput;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.PortModOutput;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.PortStatusMessage;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.RoleRequest;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.RoleRequestInput;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.RoleRequestOutput;
void onSslConnectionError(SslConnectionError sslConnectionError);
}
+ @NonNullByDefault
+ interface MessageListener {
+
+ void onHello(HelloMessage hello);
+
+ void onError(ErrorMessage error);
+
+ void onEchoRequest(EchoRequestMessage echoRequest);
+
+ void onExperimenter(ExperimenterMessage experimenter);
+
+ void onPacketIn(PacketInMessage packetIn);
+
+ void onFlowRemoved(FlowRemovedMessage flowRemoved);
+
+ void onPortStatus(PortStatusMessage portStatus);
+
+ void onMultipartReply(MultipartReplyMessage multipartReply);
+ }
+
/**
* Disconnect corresponding switch.
*
*
* @param messageListener here will be pushed all messages from switch
*/
- void setMessageListener(OpenflowProtocolListener messageListener);
+ void setMessageListener(MessageListener messageListener);
/**
* Sets the system message listener.
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.HelloMessage;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.MultipartReplyMessage;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.OfHeader;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.OpenflowProtocolListener;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.PacketInMessage;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.PortStatusMessage;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.system.rev130927.DisconnectEvent;
private static final Logger LOG = LoggerFactory.getLogger(ConnectionAdapterImpl.class);
private ConnectionReadyListener connectionReadyListener;
- private OpenflowProtocolListener messageListener;
+ private MessageListener messageListener;
private SystemListener systemListener;
private AlienMessageListener alienMessageListener;
private AbstractOutboundQueueManager<?, ?> outputManager;
}
@Override
- public void setMessageListener(final OpenflowProtocolListener messageListener) {
+ public void setMessageListener(final MessageListener messageListener) {
this.messageListener = messageListener;
}
if (outputManager != null) {
outputManager.onEchoRequest(echoRequest, datapathId);
} else {
- messageListener.onEchoRequestMessage(echoRequest);
+ messageListener.onEchoRequest(echoRequest);
}
} else if (message instanceof ErrorMessage error) {
// Send only unmatched errors
if (outputManager == null || !outputManager.onMessage(error)) {
- messageListener.onErrorMessage(error);
+ messageListener.onError(error);
}
} else if (message instanceof ExperimenterMessage experimenter) {
if (outputManager != null) {
outputManager.onMessage(experimenter);
}
- messageListener.onExperimenterMessage(experimenter);
+ messageListener.onExperimenter(experimenter);
} else if (message instanceof FlowRemovedMessage flowRemoved) {
- messageListener.onFlowRemovedMessage(flowRemoved);
+ messageListener.onFlowRemoved(flowRemoved);
} else if (message instanceof HelloMessage hello) {
LOG.info("Hello received");
- messageListener.onHelloMessage(hello);
+ messageListener.onHello(hello);
} else if (message instanceof MultipartReplyMessage multipartReply) {
if (outputManager != null) {
outputManager.onMessage(multipartReply);
}
- messageListener.onMultipartReplyMessage(multipartReply);
+ messageListener.onMultipartReply(multipartReply);
} else if (message instanceof PacketInMessage packetIn) {
- messageListener.onPacketInMessage(packetIn);
+ messageListener.onPacketIn(packetIn);
} else if (message instanceof PortStatusMessage portStatus) {
- messageListener.onPortStatusMessage(portStatus);
+ messageListener.onPortStatus(portStatus);
} else {
LOG.warn("message listening not supported for type: {}", message.getClass());
}
import org.junit.runner.RunWith;
import org.mockito.Mock;
import org.mockito.junit.MockitoJUnitRunner;
+import org.opendaylight.openflowjava.protocol.api.connection.ConnectionAdapter.MessageListener;
import org.opendaylight.openflowjava.protocol.api.connection.ConnectionAdapter.SystemListener;
import org.opendaylight.openflowjava.protocol.api.connection.ConnectionReadyListener;
import org.opendaylight.openflowjava.statistics.CounterEventTypes;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.MultipartReplyMessageBuilder;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.MultipartRequestInput;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.OfHeader;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.OpenflowProtocolListener;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.PacketInMessageBuilder;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.PacketOutInput;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.PortModInput;
@Mock
private ChannelFuture channelFuture;
@Mock
- private OpenflowProtocolListener messageListener;
+ private MessageListener messageListener;
@Mock
private SocketChannel channel;
@Mock
import org.junit.runner.RunWith;
import org.mockito.Mock;
import org.mockito.junit.MockitoJUnitRunner;
+import org.opendaylight.openflowjava.protocol.api.connection.ConnectionAdapter.MessageListener;
import org.opendaylight.openflowjava.protocol.api.connection.ConnectionAdapter.SystemListener;
import org.opendaylight.openflowjava.protocol.api.connection.ConnectionReadyListener;
import org.opendaylight.openflowjava.protocol.api.util.EncodeConstants;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.MultipartReplyMessage;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.MultipartReplyMessageBuilder;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.OfHeader;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.OpenflowProtocolListener;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.PacketInMessage;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.PacketInMessageBuilder;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.PortStatusMessage;
@Mock
ChannelPipeline pipeline;
@Mock
- private OpenflowProtocolListener messageListener;
+ private MessageListener messageListener;
@Mock
private SystemListener systemListener;
@Mock
public void testConsume() {
DataObject message = new EchoRequestMessageBuilder().build();
adapter.consume(message);
- verify(messageListener, times(1)).onEchoRequestMessage((EchoRequestMessage) message);
+ verify(messageListener, times(1)).onEchoRequest((EchoRequestMessage) message);
message = new ErrorMessageBuilder().build();
adapter.consume(message);
- verify(messageListener, times(1)).onErrorMessage((ErrorMessage) message);
+ verify(messageListener, times(1)).onError((ErrorMessage) message);
message = new ExperimenterMessageBuilder().build();
adapter.consume(message);
- verify(messageListener, times(1)).onExperimenterMessage((ExperimenterMessage) message);
+ verify(messageListener, times(1)).onExperimenter((ExperimenterMessage) message);
message = new FlowRemovedMessageBuilder().build();
adapter.consume(message);
- verify(messageListener, times(1)).onFlowRemovedMessage((FlowRemovedMessage) message);
+ verify(messageListener, times(1)).onFlowRemoved((FlowRemovedMessage) message);
message = new HelloMessageBuilder().build();
adapter.consume(message);
- verify(messageListener, times(1)).onHelloMessage((HelloMessage) message);
+ verify(messageListener, times(1)).onHello((HelloMessage) message);
message = new MultipartReplyMessageBuilder().build();
adapter.consume(message);
- verify(messageListener, times(1)).onMultipartReplyMessage((MultipartReplyMessage) message);
+ verify(messageListener, times(1)).onMultipartReply((MultipartReplyMessage) message);
message = new PacketInMessageBuilder().build();
adapter.consume(message);
- verify(messageListener, times(1)).onPacketInMessage((PacketInMessage) message);
+ verify(messageListener, times(1)).onPacketIn((PacketInMessage) message);
message = new PortStatusMessageBuilder().build();
adapter.consume(message);
- verify(messageListener, times(1)).onPortStatusMessage((PortStatusMessage) message);
+ verify(messageListener, times(1)).onPortStatus((PortStatusMessage) message);
message = new SwitchIdleEventBuilder().build();
adapter.consume(message);
verify(systemListener, times(1)).onSwitchIdle((SwitchIdleEvent) message);
verify(systemListener, times(1)).onDisconnect((DisconnectEvent) message);
message = new EchoRequestMessageBuilder().build();
adapter.consume(message);
- verify(messageListener, times(1)).onEchoRequestMessage((EchoRequestMessage) message);
+ verify(messageListener, times(1)).onEchoRequest((EchoRequestMessage) message);
}
/**
@Test
public void testConsume2() {
adapter.setResponseCache(mockCache);
- final BarrierOutputBuilder barrierBuilder = new BarrierOutputBuilder();
- barrierBuilder.setXid(Uint32.valueOf(42));
- final BarrierOutput barrier = barrierBuilder.build();
- adapter.consume(barrier);
+ adapter.consume(new BarrierOutputBuilder().setXid(Uint32.valueOf(42)).build());
verify(mockCache, times(1)).getIfPresent(any(RpcResponseKey.class));
}
import java.util.concurrent.TimeUnit;
import java.util.concurrent.TimeoutException;
import org.opendaylight.openflowjava.protocol.api.connection.ConnectionAdapter;
+import org.opendaylight.openflowjava.protocol.api.connection.ConnectionAdapter.MessageListener;
import org.opendaylight.openflowjava.protocol.api.connection.ConnectionAdapter.SystemListener;
import org.opendaylight.openflowjava.protocol.api.connection.ConnectionReadyListener;
import org.opendaylight.openflowjava.protocol.api.connection.SwitchConnectionHandler;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.HelloInputBuilder;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.HelloMessage;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.MultipartReplyMessage;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.OpenflowProtocolListener;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.PacketInMessage;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.PortStatusMessage;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.system.rev130927.DisconnectEvent;
*
* @author michal.polkorab
*/
-public class MockPlugin implements OpenflowProtocolListener, SwitchConnectionHandler, SystemListener,
- ConnectionReadyListener {
- protected static final Logger LOGGER = LoggerFactory.getLogger(MockPlugin.class);
+public class MockPlugin implements SwitchConnectionHandler, MessageListener, SystemListener, ConnectionReadyListener {
+ protected static final Logger LOG = LoggerFactory.getLogger(MockPlugin.class);
private final SettableFuture<Void> finishedFuture;
private final ExecutorService executorService;
protected volatile ConnectionAdapter adapter;
public MockPlugin(final ExecutorService executorService) {
- LOGGER.trace("Creating MockPlugin");
+ LOG.trace("Creating MockPlugin");
finishedFuture = SettableFuture.create();
this.executorService = executorService;
- LOGGER.debug("mockPlugin: {}", System.identityHashCode(this));
+ LOG.debug("mockPlugin: {}", System.identityHashCode(this));
}
@Override
public void onSwitchConnected(final ConnectionAdapter connection) {
- LOGGER.debug("onSwitchConnected: {}", connection);
+ LOG.debug("onSwitchConnected: {}", connection);
adapter = connection;
connection.setMessageListener(this);
connection.setSystemListener(this);
@Override
public boolean accept(final InetAddress switchAddress) {
- LOGGER.debug("MockPlugin.accept(): {}", switchAddress.toString());
+ LOG.debug("MockPlugin.accept(): {}", switchAddress.toString());
return true;
}
@Override
public void onDisconnect(final DisconnectEvent disconnect) {
- LOGGER.debug("disconnection occured: {}", disconnect.getInfo());
+ LOG.debug("disconnection occured: {}", disconnect.getInfo());
}
@Override
public void onSslConnectionError(final SslConnectionError sslConnectionError) {
- LOGGER.debug("Ssl error occured: {}", sslConnectionError.getInfo());
+ LOG.debug("Ssl error occured: {}", sslConnectionError.getInfo());
}
@Override
public void onSwitchIdle(final SwitchIdleEvent switchIdle) {
- LOGGER.debug("MockPlugin.onSwitchIdleEvent() switch status: {}", switchIdle.getInfo());
+ LOG.debug("MockPlugin.onSwitchIdleEvent() switch status: {}", switchIdle.getInfo());
idleCounter++;
}
@Override
- public void onEchoRequestMessage(final EchoRequestMessage notification) {
- LOGGER.debug("MockPlugin.onEchoRequestMessage() adapter: {}", adapter);
+ public void onEchoRequest(final EchoRequestMessage notification) {
+ LOG.debug("MockPlugin.onEchoRequestMessage() adapter: {}", adapter);
new Thread(() -> {
- LOGGER.debug("MockPlugin.onEchoRequestMessage().run() started adapter: {}", adapter);
+ LOG.debug("MockPlugin.onEchoRequestMessage().run() started adapter: {}", adapter);
EchoReplyInputBuilder replyBuilder = new EchoReplyInputBuilder();
replyBuilder.setVersion(Uint8.valueOf(4));
replyBuilder.setXid(notification.getXid());
EchoReplyInput echoReplyInput = replyBuilder.build();
adapter.echoReply(echoReplyInput);
- LOGGER.debug("adapter.EchoReply(Input) sent : ", echoReplyInput.toString());
- LOGGER.debug("MockPlugin.onEchoRequestMessage().run() finished adapter: {}", adapter);
+ LOG.debug("adapter.EchoReply(Input) sent : ", echoReplyInput.toString());
+ LOG.debug("MockPlugin.onEchoRequestMessage().run() finished adapter: {}", adapter);
}).start();
}
@Override
- public void onErrorMessage(final ErrorMessage notification) {
- LOGGER.debug("Error message received");
+ public void onError(final ErrorMessage notification) {
+ LOG.debug("Error message received");
}
@Override
- public void onExperimenterMessage(final ExperimenterMessage notification) {
- LOGGER.debug("Experimenter message received");
+ public void onExperimenter(final ExperimenterMessage notification) {
+ LOG.debug("Experimenter message received");
}
@Override
- public void onFlowRemovedMessage(final FlowRemovedMessage notification) {
- LOGGER.debug("FlowRemoved message received");
+ public void onFlowRemoved(final FlowRemovedMessage notification) {
+ LOG.debug("FlowRemoved message received");
}
@Override
- public void onHelloMessage(final HelloMessage notification) {
+ public void onHello(final HelloMessage notification) {
new Thread(() -> {
- LOGGER.debug("MockPlugin.onHelloMessage().run() Hello message received");
+ LOG.debug("MockPlugin.onHelloMessage().run() Hello message received");
HelloInputBuilder hib = new HelloInputBuilder();
hib.setVersion(Uint8.valueOf(4));
hib.setXid(Uint32.TWO);
HelloInput hi = hib.build();
adapter.hello(hi);
- LOGGER.debug("hello msg sent");
+ LOG.debug("hello msg sent");
new Thread(this::getSwitchFeatures).start();
}).start();
}
featuresBuilder.setXid(Uint32.valueOf(3));
GetFeaturesInput featuresInput = featuresBuilder.build();
try {
- LOGGER.debug("Requesting features ");
+ LOG.debug("Requesting features ");
RpcResult<GetFeaturesOutput> rpcResult = adapter.getFeatures(
featuresInput).get(2500, TimeUnit.MILLISECONDS);
if (rpcResult.isSuccessful()) {
- LOGGER.debug("DatapathId: {}", rpcResult.getResult().getDatapathId());
+ LOG.debug("DatapathId: {}", rpcResult.getResult().getDatapathId());
} else {
RpcError rpcError = rpcResult.getErrors().iterator().next();
- LOGGER.warn("rpcResult failed", rpcError.getCause());
+ LOG.warn("rpcResult failed", rpcError.getCause());
}
} catch (InterruptedException | ExecutionException | TimeoutException e) {
- LOGGER.error("getSwitchFeatures() exception caught: ", e.getMessage(), e);
+ LOG.error("getSwitchFeatures() exception caught: ", e.getMessage(), e);
}
}
protected void shutdown() throws InterruptedException, ExecutionException {
- LOGGER.debug("MockPlugin.shutdown() sleeping 5... : {}", System.identityHashCode(this));
+ LOG.debug("MockPlugin.shutdown() sleeping 5... : {}", System.identityHashCode(this));
Thread.sleep(500);
if (adapter != null) {
Future<Boolean> disconnect = adapter.disconnect();
disconnect.get();
- LOGGER.debug("MockPlugin.shutdown() Disconnected");
+ LOG.debug("MockPlugin.shutdown() Disconnected");
}
finishedFuture.set(null);
}
@Override
- public void onMultipartReplyMessage(final MultipartReplyMessage notification) {
- LOGGER.debug("MultipartReply message received");
+ public void onMultipartReply(final MultipartReplyMessage notification) {
+ LOG.debug("MultipartReply message received");
}
@Override
- public void onPacketInMessage(final PacketInMessage notification) {
- LOGGER.debug("PacketIn message received");
- LOGGER.debug("BufferId: {}", notification.getBufferId());
- LOGGER.debug("TotalLength: {}", notification.getTotalLen());
- LOGGER.debug("Reason: {}", notification.getReason());
- LOGGER.debug("TableId: {}", notification.getTableId());
- LOGGER.debug("Cookie: {}", notification.getCookie());
- LOGGER.debug("Class: {}", notification.getMatch().getMatchEntry().get(0).getOxmClass());
- LOGGER.debug("Field: {}", notification.getMatch().getMatchEntry().get(0).getOxmMatchField());
- LOGGER.debug("Datasize: {}", notification.getData().length);
+ public void onPacketIn(final PacketInMessage notification) {
+ LOG.debug("PacketIn message received");
+ LOG.debug("BufferId: {}", notification.getBufferId());
+ LOG.debug("TotalLength: {}", notification.getTotalLen());
+ LOG.debug("Reason: {}", notification.getReason());
+ LOG.debug("TableId: {}", notification.getTableId());
+ LOG.debug("Cookie: {}", notification.getCookie());
+ LOG.debug("Class: {}", notification.getMatch().nonnullMatchEntry().get(0).getOxmClass());
+ LOG.debug("Field: {}", notification.getMatch().nonnullMatchEntry().get(0).getOxmMatchField());
+ LOG.debug("Datasize: {}", notification.getData().length);
}
@Override
- public void onPortStatusMessage(final PortStatusMessage notification) {
- LOGGER.debug("MockPlugin.onPortStatusMessage() message received");
+ public void onPortStatus(final PortStatusMessage notification) {
+ LOG.debug("MockPlugin.onPortStatusMessage() message received");
}
public SettableFuture<Void> getFinishedFuture() {
@Override
public void onConnectionReady() {
- LOGGER.trace("MockPlugin().onConnectionReady()");
+ LOG.trace("MockPlugin().onConnectionReady()");
}
/**
*/
public void initiateConnection(final SwitchConnectionProviderImpl switchConnectionProvider, final String host,
final int port) {
- LOGGER.trace("MockPlugin().initiateConnection()");
+ LOG.trace("MockPlugin().initiateConnection()");
switchConnectionProvider.initiateConnection(host, port);
}
}
* terms of the Eclipse Public License v1.0 which accompanies this distribution,
* and is available at http://www.eclipse.org/legal/epl-v10.html
*/
-
package org.opendaylight.openflowplugin.api.openflow.device.listener;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.OpenflowProtocolListener;
+import org.opendaylight.openflowjava.protocol.api.connection.ConnectionAdapter.MessageListener;
/**
* Facade for openflow protocol listener.
*/
-public interface OpenflowMessageListenerFacade extends OpenflowProtocolListener {
+public interface OpenflowMessageListenerFacade extends MessageListener {
}
import com.google.common.util.concurrent.Futures;
import com.google.common.util.concurrent.MoreExecutors;
import java.util.Objects;
+import org.opendaylight.openflowjava.protocol.api.connection.ConnectionAdapter.MessageListener;
import org.opendaylight.openflowplugin.api.openflow.connection.ConnectionContext;
import org.opendaylight.openflowplugin.api.openflow.connection.HandshakeContext;
import org.opendaylight.openflowplugin.impl.connection.HandshakeStepWrapper;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.FlowRemovedMessage;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.HelloMessage;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.MultipartReplyMessage;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.OpenflowProtocolListener;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.PacketInMessage;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.PortStatusMessage;
import org.opendaylight.yangtools.yang.common.RpcResult;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-public class OpenflowProtocolListenerInitialImpl implements OpenflowProtocolListener {
+public class OpenflowProtocolListenerInitialImpl implements MessageListener {
private static final Logger LOG = LoggerFactory.getLogger(OpenflowProtocolListenerInitialImpl.class);
private final ConnectionContext connectionContext;
* @param handshakeContext - handshake context
*/
public OpenflowProtocolListenerInitialImpl(final ConnectionContext connectionContext,
- final HandshakeContext handshakeContext) {
+ final HandshakeContext handshakeContext) {
this.connectionContext = connectionContext;
this.handshakeContext = handshakeContext;
}
@Override
- public void onEchoRequestMessage(final EchoRequestMessage echoRequestMessage) {
+ public void onEchoRequest(final EchoRequestMessage echoRequestMessage) {
final var xid = echoRequestMessage.getXid();
LOG.debug("echo request received: {}", xid);
Futures.addCallback(connectionContext.getConnectionAdapter().echoReply(
}
@Override
- public void onErrorMessage(final ErrorMessage notification) {
+ public void onError(final ErrorMessage notification) {
LOG.debug("NOOP: Error message received during handshake phase: {}", notification);
}
@Override
- public void onExperimenterMessage(final ExperimenterMessage notification) {
+ public void onExperimenter(final ExperimenterMessage notification) {
LOG.debug("NOOP: Experimenter message during handshake phase not supported: {}", notification);
}
@Override
- public void onFlowRemovedMessage(final FlowRemovedMessage notification) {
+ public void onFlowRemoved(final FlowRemovedMessage notification) {
LOG.debug("NOOP: Flow-removed message during handshake phase not supported: {}", notification);
}
@Override
- public void onHelloMessage(final HelloMessage hello) {
+ public void onHello(final HelloMessage hello) {
LOG.debug("processing HELLO.xid: {} from device {}", hello.getXid(),
connectionContext.getConnectionAdapter().getRemoteAddress());
final ConnectionContext.CONNECTION_STATE connectionState = connectionContext.getConnectionState();
}
if (checkState(ConnectionContext.CONNECTION_STATE.HANDSHAKING)) {
- final HandshakeStepWrapper handshakeStepWrapper = new HandshakeStepWrapper(
- hello, handshakeContext.getHandshakeManager(), connectionContext.getConnectionAdapter());
+ final var handshakeStepWrapper = new HandshakeStepWrapper(hello,
+ handshakeContext.getHandshakeManager(), connectionContext.getConnectionAdapter());
// use up netty thread
handshakeStepWrapper.run();
} else {
}
@Override
- public void onMultipartReplyMessage(final MultipartReplyMessage notification) {
+ public void onMultipartReply(final MultipartReplyMessage notification) {
LOG.debug("NOOP: Multipart-reply message during handshake phase not supported: {}", notification);
}
@Override
- public void onPacketInMessage(final PacketInMessage notification) {
+ public void onPacketIn(final PacketInMessage notification) {
LOG.debug("NOOP: Packet-in message during handshake phase not supported: {}", notification);
}
@Override
- public void onPortStatusMessage(final PortStatusMessage notification) {
+ public void onPortStatus(final PortStatusMessage notification) {
connectionContext.handlePortStatusMessage(notification);
}
import org.slf4j.LoggerFactory;
public class OpenflowProtocolListenerFullImpl implements AlienMessageListener, OpenflowMessageListenerFacade {
-
private static final Logger LOG = LoggerFactory.getLogger(OpenflowProtocolListenerFullImpl.class);
private final ConnectionAdapter connectionAdapter;
}
@Override
- public void onEchoRequestMessage(final EchoRequestMessage echoRequestMessage) {
+ public void onEchoRequest(final EchoRequestMessage echoRequestMessage) {
final var xid = echoRequestMessage.getXid();
LOG.debug("echo request received: {}", xid);
Futures.addCallback(connectionAdapter.echoReply(
}
@Override
- public void onErrorMessage(final ErrorMessage notification) {
+ public void onError(final ErrorMessage notification) {
deviceReplyProcessor.processReply(notification);
}
@Override
- public void onExperimenterMessage(final ExperimenterMessage notification) {
+ public void onExperimenter(final ExperimenterMessage notification) {
LOG.trace("Received experiementer message: {}", notification.getClass());
deviceReplyProcessor.processExperimenterMessage(notification);
}
@Override
- public void onFlowRemovedMessage(final FlowRemovedMessage notification) {
+ public void onFlowRemoved(final FlowRemovedMessage notification) {
deviceReplyProcessor.processFlowRemovedMessage(notification);
}
@Override
- public void onHelloMessage(final HelloMessage hello) {
+ public void onHello(final HelloMessage hello) {
LOG.warn("hello message received outside handshake phase -> dropping connection {}",
connectionAdapter.getRemoteAddress());
connectionAdapter.disconnect();
}
@Override
- public void onMultipartReplyMessage(final MultipartReplyMessage notification) {
+ public void onMultipartReply(final MultipartReplyMessage notification) {
if (LOG.isTraceEnabled()) {
LOG.trace("Multipart Reply with XID: {}", notification.getXid());
}
}
@Override
- public void onPacketInMessage(final PacketInMessage notification) {
+ public void onPacketIn(final PacketInMessage notification) {
deviceReplyProcessor.processPacketInMessage(notification);
}
@Override
- public void onPortStatusMessage(final PortStatusMessage notification) {
+ public void onPortStatus(final PortStatusMessage notification) {
deviceReplyProcessor.processPortStatusMessage(notification);
}
public boolean onAlienMessage(final OfHeader message) {
return deviceReplyProcessor.processAlienMessage(message);
}
-
}
import org.opendaylight.mdsal.binding.api.DataBroker;
import org.opendaylight.mdsal.binding.api.NotificationPublishService;
import org.opendaylight.openflowjava.protocol.api.connection.ConnectionAdapter;
+import org.opendaylight.openflowjava.protocol.api.connection.ConnectionAdapter.MessageListener;
import org.opendaylight.openflowjava.protocol.api.connection.ConnectionReadyListener;
import org.opendaylight.openflowjava.protocol.api.util.EncodeConstants;
import org.opendaylight.openflowplugin.api.openflow.connection.ConnectionContext;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.HelloMessage;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.HelloMessageBuilder;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.HelloOutput;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.OpenflowProtocolListener;
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.openflow.provider.config.rev160510.NonZeroUint32Type;
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.openflow.provider.config.rev160510.OpenflowProviderConfigBuilder;
import org.opendaylight.yangtools.yang.common.RpcResult;
@Captor
private ArgumentCaptor<ConnectionReadyListener> connectionReadyListenerAC;
@Captor
- private ArgumentCaptor<OpenflowProtocolListener> ofpListenerAC;
+ private ArgumentCaptor<MessageListener> ofpListenerAC;
@Mock
DataBroker dataBroker;
.setVersion(EncodeConstants.OF_VERSION_1_3)
.setXid(Uint32.ONE)
.build();
- ofpListenerAC.getValue().onHelloMessage(hello);
+ ofpListenerAC.getValue().onHello(hello);
// deliver getFeature output
Thread.sleep(100L);
.setVersion(EncodeConstants.OF_VERSION_1_3)
.setXid(Uint32.ONE)
.build();
- ofpListenerAC.getValue().onHelloMessage(hello);
+ ofpListenerAC.getValue().onHello(hello);
// notify about connection ready
connectionReadyListenerAC.getValue().onConnectionReady();
public void testOnEchoRequestMessage() {
when(connectionAdapter.echoReply(any())).thenReturn(Futures.immediateFuture(null));
- openflowProtocolListenerInitial.onEchoRequestMessage(
+ openflowProtocolListenerInitial.onEchoRequest(
new EchoRequestMessageBuilder()
.setXid(Uint32.valueOf(42))
.setVersion(EncodeConstants.OF_VERSION_1_3)
@Test
public void testOnHelloMessage() {
- HelloMessageBuilder helloMessageBld = new HelloMessageBuilder()
- .setXid(Uint32.valueOf(42))
- .setVersion(EncodeConstants.OF_VERSION_1_3);
- openflowProtocolListenerInitial.onHelloMessage(helloMessageBld.build());
+ openflowProtocolListenerInitial.onHello(new HelloMessageBuilder()
+ .setXid(Uint32.valueOf(42))
+ .setVersion(EncodeConstants.OF_VERSION_1_3)
+ .build());
verify(handshakeManager).shake(any());
}
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.EchoRequestMessageBuilder;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.ErrorMessage;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.ErrorMessageBuilder;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.ExperimenterMessage;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.ExperimenterMessageBuilder;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.FlowRemovedMessage;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.FlowRemovedMessageBuilder;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.HelloMessage;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.HelloMessageBuilder;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.OpenflowProtocolListener;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.PacketInMessage;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.PacketInMessageBuilder;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.PortStatusMessage;
connectionAdapter.setMessageListener(ofProtocolListener);
when(connectionAdapter.getRemoteAddress())
.thenReturn(InetSocketAddress.createUnresolved("ofp-junit.example.org", 6663));
- verify(connectionAdapter).setMessageListener(any(OpenflowProtocolListener.class));
+ verify(connectionAdapter).setMessageListener(any());
}
@After
/**
* Test method for
- * {@link OpenflowProtocolListenerFullImpl#onEchoRequestMessage(
+ * {@link OpenflowProtocolListenerFullImpl#onEchoRequest(
* org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.EchoRequestMessage)}.
*/
@Test
public void testOnEchoRequestMessage() {
when(connectionAdapter.echoReply(any())).thenReturn(Futures.immediateFuture(null));
- ofProtocolListener.onEchoRequestMessage(
+ ofProtocolListener.onEchoRequest(
new EchoRequestMessageBuilder().setVersion(EncodeConstants.OF_VERSION_1_3).setXid(xid).build());
verify(connectionAdapter).echoReply(any(EchoReplyInput.class));
/**
* Test method for
- * {@link OpenflowProtocolListenerFullImpl#onErrorMessage(
+ * {@link OpenflowProtocolListenerFullImpl#onError(
* org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.ErrorMessage)}.
*/
@Test
public void testOnErrorMessage() {
- ErrorMessage errorMessage = new ErrorMessageBuilder()
- .setVersion(EncodeConstants.OF_VERSION_1_3).setXid(xid).build();
- ofProtocolListener.onErrorMessage(errorMessage);
+ ofProtocolListener.onError(
+ new ErrorMessageBuilder().setVersion(EncodeConstants.OF_VERSION_1_3).setXid(xid).build());
verify(deviceReplyProcessor).processReply(any(ErrorMessage.class));
}
/**
* Test method for
- * {@link OpenflowProtocolListenerFullImpl#onExperimenterMessage(
+ * {@link OpenflowProtocolListenerFullImpl#onExperimenter(
* org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.ExperimenterMessage)}.
*/
@Test
public void testOnExperimenterMessage() {
- ExperimenterMessage experimenterMessage = new ExperimenterMessageBuilder()
- .setVersion(EncodeConstants.OF_VERSION_1_3).setXid(xid).build();
- ofProtocolListener.onExperimenterMessage(experimenterMessage);
+ ofProtocolListener.onExperimenter(
+ new ExperimenterMessageBuilder().setVersion(EncodeConstants.OF_VERSION_1_3).setXid(xid).build());
verify(deviceReplyProcessor).processExperimenterMessage(any());
}
/**
* Test method for
- * {@link OpenflowProtocolListenerFullImpl#onFlowRemovedMessage(
+ * {@link OpenflowProtocolListenerFullImpl#onFlowRemoved(
* org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.FlowRemovedMessage)}.
*/
@Test
public void testOnFlowRemovedMessage() {
- FlowRemovedMessage flowRemovedMessage = new FlowRemovedMessageBuilder()
- .setVersion(EncodeConstants.OF_VERSION_1_3).setXid(xid).build();
- ofProtocolListener.onFlowRemovedMessage(flowRemovedMessage);
+ ofProtocolListener.onFlowRemoved(
+ new FlowRemovedMessageBuilder().setVersion(EncodeConstants.OF_VERSION_1_3).setXid(xid).build());
verify(deviceReplyProcessor).processFlowRemovedMessage(any(FlowRemovedMessage.class));
}
/**
* Test method for
- * {@link OpenflowProtocolListenerFullImpl#onHelloMessage(
+ * {@link OpenflowProtocolListenerFullImpl#onHello(
* org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.HelloMessage)}.
*/
@Test
public void testOnHelloMessage() {
- HelloMessage helloMessage = new HelloMessageBuilder()
- .setVersion(EncodeConstants.OF_VERSION_1_3).setXid(xid).build();
- ofProtocolListener.onHelloMessage(helloMessage);
+ ofProtocolListener.onHello(
+ new HelloMessageBuilder().setVersion(EncodeConstants.OF_VERSION_1_3).setXid(xid).build());
verify(connectionAdapter).getRemoteAddress();
verify(connectionAdapter).disconnect();
/**
* Test method for
- * {@link OpenflowProtocolListenerFullImpl#onPacketInMessage(
+ * {@link OpenflowProtocolListenerFullImpl#onPacketIn(
* org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.PacketInMessage)}.
*/
@Test
public void testOnPacketInMessage() {
- PacketInMessage packetInMessage = new PacketInMessageBuilder()
- .setVersion(EncodeConstants.OF_VERSION_1_3).setXid(xid).build();
- ofProtocolListener.onPacketInMessage(packetInMessage);
+ ofProtocolListener.onPacketIn(
+ new PacketInMessageBuilder().setVersion(EncodeConstants.OF_VERSION_1_3).setXid(xid).build());
verify(deviceReplyProcessor).processPacketInMessage(any(PacketInMessage.class));
}
/**
* Test method for
- * {@link OpenflowProtocolListenerFullImpl#onPortStatusMessage(
+ * {@link OpenflowProtocolListenerFullImpl#onPortStatus(
* org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.PortStatusMessage)}.
*/
@Test
public void testOnPortStatusMessage() {
- PortStatusMessage portStatusMessage = new PortStatusMessageBuilder()
- .setVersion(EncodeConstants.OF_VERSION_1_3).setXid(xid).build();
- ofProtocolListener.onPortStatusMessage(portStatusMessage);
+ ofProtocolListener.onPortStatus(
+ new PortStatusMessageBuilder().setVersion(EncodeConstants.OF_VERSION_1_3).setXid(xid).build());
verify(deviceReplyProcessor).processPortStatusMessage(any(PortStatusMessage.class));
}