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