1 /* Copyright (C)2013 Pantheon Technologies, s.r.o. All rights reserved. */
\r
2 package org.opendaylight.openflowjava.protocol.impl.integration;
\r
4 import java.net.InetAddress;
\r
6 import org.opendaylight.openflowjava.protocol.api.connection.ConnectionAdapter;
\r
7 import org.opendaylight.openflowjava.protocol.api.connection.SwitchConnectionHandler;
\r
8 import org.opendaylight.openflowjava.protocol.impl.util.BufferHelper;
\r
9 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.EchoRequestMessage;
\r
10 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.ErrorMessage;
\r
11 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.ExperimenterMessage;
\r
12 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.FlowRemovedMessage;
\r
13 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.HelloInput;
\r
14 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.HelloInputBuilder;
\r
15 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.HelloMessage;
\r
16 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.MultipartReplyMessage;
\r
17 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.MultipartRequestMessage;
\r
18 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.OpenflowProtocolListener;
\r
19 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.PacketInMessage;
\r
20 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.PortStatusMessage;
\r
21 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.system.rev130927.DisconnectEvent;
\r
22 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.system.rev130927.SystemNotificationsListener;
\r
23 import org.slf4j.Logger;
\r
24 import org.slf4j.LoggerFactory;
\r
27 * @author michal.polkorab
\r
30 public class MockPlugin implements OpenflowProtocolListener, SwitchConnectionHandler, SystemNotificationsListener {
\r
32 private static final Logger LOGGER = LoggerFactory.getLogger(MockPlugin.class);
\r
33 private ConnectionAdapter adapter;
\r
37 public void onSwitchConnected(ConnectionAdapter connection) {
\r
38 LOGGER.debug("onSwitchConnected");
\r
39 this.adapter = connection;
\r
40 connection.setMessageListener(this);
\r
41 connection.setSystemListener(this);
\r
45 public boolean accept(InetAddress switchAddress) {
\r
46 // TODO Auto-generated method stub
\r
51 public void onEchoRequestMessage(EchoRequestMessage notification) {
\r
52 LOGGER.debug("EchoRequest message received");
\r
57 public void onErrorMessage(ErrorMessage notification) {
\r
58 LOGGER.debug("Error message received");
\r
63 public void onExperimenterMessage(ExperimenterMessage notification) {
\r
64 LOGGER.debug("Experimenter message received");
\r
69 public void onFlowRemovedMessage(FlowRemovedMessage notification) {
\r
70 LOGGER.debug("FlowRemoved message received");
\r
75 public void onHelloMessage(HelloMessage notification) {
\r
76 LOGGER.debug("Hello message received");
\r
77 HelloInputBuilder hib = new HelloInputBuilder();
\r
79 BufferHelper.setupHeader(hib);
\r
80 } catch (Exception e) {
\r
81 LOGGER.error(e.getMessage(), e);
\r
83 HelloInput hi = hib.build();
\r
88 public void onMultipartReplyMessage(MultipartReplyMessage notification) {
\r
89 LOGGER.debug("MultipartReply message received");
\r
94 public void onMultipartRequestMessage(MultipartRequestMessage notification) {
\r
95 LOGGER.debug("MultipartRequest message received");
\r
100 public void onPacketInMessage(PacketInMessage notification) {
\r
101 LOGGER.debug("PacketIn message received");
\r
106 public void onPortStatusMessage(PortStatusMessage notification) {
\r
107 LOGGER.debug("PortStatus message received");
\r
112 public void onDisconnectEvent(DisconnectEvent notification) {
\r
113 LOGGER.debug("disconnection ocured: "+notification.getInfo());
\r