3a8995a6e10111d0e61db60cff6ff84df6a7ba35
[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.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.GetFeaturesOutput;
11 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.HelloMessage;
12
13 /**
14  * @author mirehak
15  *
16  */
17 public interface HandshakeManager {
18
19     /**
20      * @return negotiated version
21      */
22     Short getVersion();
23     
24     /**
25      * @return obtained connection features
26      */
27     GetFeaturesOutput getFeatures();
28
29     /**
30      * @param receivedHello from switch
31      */
32     void setReceivedHello(HelloMessage receivedHello);
33
34     /**
35      * @param errorHandler the errorHandler to set
36      */
37     void setErrorHandler(ErrorHandler errorHandler);
38
39     /**
40      * @param handshakeListener the handshakeListener to set
41      */
42     void setHandshakeListener(HandshakeListener handshakeListener);
43
44     /**
45      * @param isBitmapNegotiationEnable
46      */
47     void setUseVersionBitmap(boolean isBitmapNegotiationEnable);
48
49     /**
50      * process current handshake step
51      */
52     void shake();
53 }