3ee507eab8049f1e3c0c5164deed512e6fe5bcc7
[openflowjava.git] / openflow-protocol-impl / src / test / java / org / opendaylight / openflowjava / protocol / impl / integration / MockPlugin.java
1 /* Copyright (C)2013 Pantheon Technologies, s.r.o. All rights reserved. */\r
2 package org.opendaylight.openflowjava.protocol.impl.integration;\r
3 \r
4 import java.net.InetAddress;\r
5 \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
25 \r
26 /**\r
27  * @author michal.polkorab\r
28  *\r
29  */\r
30 public class MockPlugin implements OpenflowProtocolListener, SwitchConnectionHandler, SystemNotificationsListener {\r
31 \r
32     private static final Logger LOGGER = LoggerFactory.getLogger(MockPlugin.class);\r
33     private ConnectionAdapter adapter;\r
34     \r
35     \r
36     @Override\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
42     }\r
43 \r
44     @Override\r
45     public boolean accept(InetAddress switchAddress) {\r
46         // TODO Auto-generated method stub\r
47         return true;\r
48     }\r
49 \r
50     @Override\r
51     public void onEchoRequestMessage(EchoRequestMessage notification) {\r
52         LOGGER.debug("EchoRequest message received");\r
53         \r
54     }\r
55 \r
56     @Override\r
57     public void onErrorMessage(ErrorMessage notification) {\r
58         LOGGER.debug("Error message received");\r
59         \r
60     }\r
61 \r
62     @Override\r
63     public void onExperimenterMessage(ExperimenterMessage notification) {\r
64         LOGGER.debug("Experimenter message received");\r
65         \r
66     }\r
67 \r
68     @Override\r
69     public void onFlowRemovedMessage(FlowRemovedMessage notification) {\r
70         LOGGER.debug("FlowRemoved message received");\r
71         \r
72     }\r
73 \r
74     @Override\r
75     public void onHelloMessage(HelloMessage notification) {\r
76         LOGGER.debug("Hello message received");\r
77         HelloInputBuilder hib = new HelloInputBuilder();\r
78         try {\r
79             BufferHelper.setupHeader(hib);\r
80         } catch (Exception e) {\r
81            LOGGER.error(e.getMessage(), e);\r
82         }\r
83         HelloInput hi = hib.build();\r
84         adapter.hello(hi);\r
85     }\r
86 \r
87     @Override\r
88     public void onMultipartReplyMessage(MultipartReplyMessage notification) {\r
89         LOGGER.debug("MultipartReply message received");\r
90         \r
91     }\r
92 \r
93     @Override\r
94     public void onMultipartRequestMessage(MultipartRequestMessage notification) {\r
95         LOGGER.debug("MultipartRequest message received");\r
96         \r
97     }\r
98 \r
99     @Override\r
100     public void onPacketInMessage(PacketInMessage notification) {\r
101         LOGGER.debug("PacketIn message received");\r
102         \r
103     }\r
104 \r
105     @Override\r
106     public void onPortStatusMessage(PortStatusMessage notification) {\r
107         LOGGER.debug("PortStatus message received");\r
108         \r
109     }\r
110 \r
111     @Override\r
112     public void onDisconnectEvent(DisconnectEvent notification) {\r
113         LOGGER.debug("disconnection ocured: "+notification.getInfo());\r
114     }\r
115 \r
116 }\r