Added support for switch idle state
[openflowjava.git] / openflow-protocol-api / src / main / java / org / opendaylight / openflowjava / protocol / api / connection / ConnectionConfiguration.java
1 /* Copyright (C)2013 Pantheon Technologies, s.r.o. All rights reserved. */
2
3 package org.opendaylight.openflowjava.protocol.api.connection;
4
5 import java.net.InetAddress;
6
7 import javax.net.ssl.SSLEngine;
8
9 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.system.rev130927.SwitchIdleEvent;
10
11 /**
12  * @author mirehak
13  *
14  */
15 public interface ConnectionConfiguration {
16     
17     /**
18      * connection functionality support types
19      */
20     public enum FEATURE_SUPPORT {
21         /** feature is not supported at all */
22         NOT_SUPPORTED,
23         /** feature is supported */
24         SUPPORTED,
25         /** feature is supported and has to be used by clients */
26         REQUIRED
27     }
28     
29     /**
30      * @return address to bind, if null, all available interfaces will be used
31      */
32     public InetAddress getAddress();
33     
34     /**
35      * @return port to bind
36      */
37     public int getPort();
38     
39     /**
40      * @return transport protocol to use
41      */
42     public Object getTransferProtocol();
43     
44     /**
45      * @return encryption feature support
46      */
47     public FEATURE_SUPPORT getTlsSupport();
48     
49     /**
50      * @return silence time (in milliseconds) - after this time {@link SwitchIdleEvent} message is sent upstream 
51      */
52     public long getSwitchIdleTimeout();
53     
54     /**
55      * @return seed for {@link SSLEngine}
56      */
57     public Object getSslContext();
58
59 }