d9b5330deaa51e75fa8d4b1f1c3f1b299b5714ad
[openflowplugin.git] / openflowplugin / src / main / java / org / opendaylight / openflowplugin / openflow / md / core / HandshakeManager.java
1 /**
2  * Copyright (c) 2013 Cisco Systems, Inc. and others.  All rights reserved.
3  *
4  * This program and the accompanying materials are made available under the
5  * terms of the Eclipse Public License v1.0 which accompanies this distribution,
6  * and is available at http://www.eclipse.org/legal/epl-v10.html
7  */
8 package org.opendaylight.openflowplugin.openflow.md.core;
9
10 import org.opendaylight.openflowplugin.api.openflow.md.core.ErrorHandler;
11 import org.opendaylight.openflowplugin.api.openflow.md.core.HandshakeListener;
12 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.GetFeaturesOutput;
13 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.HelloMessage;
14
15 /**
16  * @author mirehak
17  *
18  */
19 public interface HandshakeManager {
20
21     /**
22      * @return negotiated version
23      */
24     Short getVersion();
25     
26     /**
27      * @return obtained connection features
28      */
29     GetFeaturesOutput getFeatures();
30
31     /**
32      * @param receivedHello from switch
33      */
34     void setReceivedHello(HelloMessage receivedHello);
35
36     /**
37      * @param errorHandler the errorHandler to set
38      */
39     void setErrorHandler(ErrorHandler errorHandler);
40
41     /**
42      * @param handshakeListener the handshakeListener to set
43      */
44     void setHandshakeListener(HandshakeListener handshakeListener);
45
46     /**
47      * @param isBitmapNegotiationEnable
48      */
49     void setUseVersionBitmap(boolean isBitmapNegotiationEnable);
50
51     /**
52      * process current handshake step
53      */
54     void shake();
55 }